[pgsql-jp: 32772] pgpool 1.0 beta1リリース

Tatsuo Ishii t-ishii @ sra.co.jp
2004年 4月 13日 (火) 21:44:09 JST


石井です.

> 以下のようなお知らせを以前行いましたが,今回デッドロック対策や0.2系で
> 修正されたTCP/IP接続のパフォーマンス対策を取り込んだ1.0 alpha3をリリー
> スしました.入手先などは
> 
> http://www2b.biglobe.ne.jp/~caco/pgpool/
> 
> でご覧下さい.
> 
> [デッドロック対策について]
> 
> 1.0をテストしていて分かったのですが,下記3)の方式ではレプリケーション
> 動作をしていない場合には発生しない「デッドロック」が起こる可能性があり
> ます.しかもこのデッドロックはPostgreSQLの監視対象のデッドロックではな
> いので,自動的なトランザクションアボートで解消されることもありません.
> 
> このデッドロックを回避するには,3)をあきらめ,必ずマスタ系の処理が完了
> してからセカンダリ系の処理に移るようにすれば良いのですが,それでは性能
> が犠牲になります.そこで,デッドロック対策が必要な問い合わせのみSQLの
> コメント「/*STRICT*/」を行頭に挿入することによって,性能低下を最小限に
> 押さえられるようにしました(この処理がわずらわしい場合には,すべての問
> い合わせでこのコメントを挿入したのと同じ効果が得られるオプションが利用
> できます).
> 
> よろしければお試し下さい.

gpoolのステータスをpsqlから確認できる機能を盛り込み,beta1としてリリー
スしました.つまり,pgpoolがPostgreSQLのフリをするわけですね:-)こんな
感じです.

psql -p 9999 -c 'show pool_status' template1

(データベース名は何でもかまいません).

            item             | value |                              description                               
-----------------------------+-------+------------------------------------------------------------------------
 inetdomain                  | 0     | 1 if accepting TCP/IP connection
 port                        | 9999  | pgpool accepting port number
 socket_dir                  | /tmp  | pgpool socket directory
 backend_host_name           |       | master backend host name
 backend_port                | 5432  | master backend port number
 secondary_backend_host_name |       | secondary backend host name
 secondary_backend_port      | 5433  | secondary backend port number
 num_init_children           | 32    | # of children initially pre-forked
 child_life_time             | 0     | if idle for this seconds, child exits (not implemented yet)
 connection_life_time        | 0     | if idle for this seconds, connection closes
 max_pool                    | 4     | max # of connection pool per child
 logdir                      | /tmp  | logging directory
 backend_socket_dir          | /tmp  | Unix domain socket directory for the PostgreSQL server
 replication_mode            | 1     | non 0 if operating in replication mode
 replication_strict          | 0     | non 0 if operating in strict mode
 replication_timeout         | 5000  | if secondary does not respond in this milli seconds, abort the session
 current_backend_host_name   |       | current master host name
 current_backend_port        | 5433  | current master port #
 replication_enabled         | 0     | non 0 if operating in replication mode
(19 rows)

pgpoolにはフェイルオーバ機能がついているため,現在のマスタが分かりにく
いことがあるのですが,current_backend_host_name+current_backend_portで,
現在のマスタが確認できます.また,replication_enabledが0であれば,レプ
リケーションモードから縮退運転に入っていることも確認できます.

1.0系については,大きな機能の追加はこれ位でで打ち止めにして,安定版を
目指したいと思っています.
--
Tatsuo Ishii



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