[pgsql-jp: 28296] Re: マルチスレッドは速い?

Jun Kitamura kitamura @ zoozee.jp
2002年 12月 13日 (金) 13:58:42 JST


北村@zoozee です。

> >>2)Javaアプリケーションをマルチスレッドにするとトータルの
> >>スループットが落ちます。CPUはほとんどフルの状態です。
> >>商用データベースではマルチスレッドにするとスループットは
> >>上がるのですがPostgreSQLでは逆になります。
> > 
> > 
> > 現状のPostgreSQLのプロトコルかJDBCドライバが、
> > とくにスレッドを考慮した造りになっていないからでしょう。
> > コネクションを複数用意して それらで平行アクセスすれば速くなったりしませんか?
> 
> 
> コネクションはもちろんスレッド毎に作成しています。

コネクションをスレッド毎に作成するのではなく、コネクションマ
ネージャークラス(Singletonデザインパターンのような)から、コ
ネクションを貰う、返す、という方法にしないと、「コネクション
を張る動作」がボトルネックになり、遅くなると思います。

それから、PostgreSQL の JDBCドライバの中の Statement クラス
はスレッドセーフです。1つのコネクションの中で Statement を複
数スレッド上で動作させるだけで、速くなりますよ。
(やってる内容によりますが)。

ではでは。





pgsql-jp メーリングリストの案内