[pgpool-general-jp: 64] pgpoolの更新パフォーマンス

koyama mlus @ hintmark.com
2006年 12月 23日 (土) 22:31:17 JST


xeon-koyamaです

pgpool-3.1.1 を使って 2つのホストでレプリケーションしています。

INSERT 文でのパフォーマンスが、少し悪いので、何とかならないかとあえいで
います。

挿入処理比較

挿入データ
  40000万行(行670バイトくらい)の レコード挿入

挿入方法
  JDBC PreparedStatementによる

-------------------------------------------------------------
環境1
  SUSELinux10.1
  GeodNXマシン (1500 @ 6w)
  メモリ  1G
  Postgres8.1.5
  Pgpoolは利用しない
  挿入時間  2分〜3分
-------------------------------------------------------------


-------------------------------------------------------------
環境2
  SUSELinux10.1
  XeonLV
  メモリ  3G
  Postgres8.1.5
  3Ware 9550SX RAID5
  Pgpoolを使って、同じ構成の2つのホストで レプリケーション
  挿入時間  70分〜80分
-------------------------------------------------------------

当初は、倍の処理なので、 10分を見ておけばいいかなと思っていたのですが、
ものすごく差がでるので、ちょっと疑問に思いました。

http://www2b.biglobe.ne.jp/~caco/pgpool/

の説明で、

>    2. デッドロックが発生する可能性のある問い合わせの先頭に特別なキーワー ド「/*STRICT*/」を入れる
>    たとえば上の例で言うと /*STRICT*/ LOCK TABLE t1; とします.こうすると,
>  この問い合わせだけはmasterとsecondaryが並 列処理しなくなるので,デッ
ドロックが発生しません.
>   /*STRICT*/が記 入されていない他の問い合わせは並列処理されるので,効
率が良くなり ます.
>   なお,PostgreSQLでは,/*から*/まではコメントとして扱われるので, DB
処理に影響はありません.

とありましたので、試してみたいのですが、

作成するSQLは、  "/*STRICT*/ INSERT INTO TABLE VALUES(?,?,?,?)"
こんな感じでやるのでしょうか?

コメント付きで、PreparedStatementを使った事がないので、心配になり質問さ
せて頂きました。

ご存じの方がいらっしゃいましたら、ご返答よろしくお願いいたします。

















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