[pgsql-jp: 28291] Re: マルチスレッドは速い?
Tamotsu Ebina
ebina @ pluto.dti.ne.jp
2002年 12月 13日 (金) 12:07:23 JST
>>2)Javaアプリケーションをマルチスレッドにするとトータルの
>>スループットが落ちます。CPUはほとんどフルの状態です。
>>商用データベースではマルチスレッドにするとスループットは
>>上がるのですがPostgreSQLでは逆になります。
>
>
> 現状のPostgreSQLのプロトコルかJDBCドライバが、
> とくにスレッドを考慮した造りになっていないからでしょう。
> コネクションを複数用意して それらで平行アクセスすれば速くなったりしませんか?
コネクションはもちろんスレッド毎に作成しています。
>
>>単純に考えるとマルチスレッドにした方がスループットは上がると
>>思ったのですが?
>>
>
>
> たぶんスレッドについてなにか誤解されています。
> スレッド化すれば何でも速くなるものではありません。
> マルチスレッドにして速くなる設計/構造になっていれば速くなるのであって、
> スレッド間の排他制御がうまくいかないと、かえって遅くなるものです。
> なるべく synchronized しないように設計するのが良しとされているでしょう?
>
商用データベースではマルチスレッドの効果がでています。
スレッド間でinsertするレコードのキーは重複していないので
とくにsynchronizedはしていません。
海老名
pgsql-jp メーリングリストの案内