[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 メーリングリストの案内