“show pool_nodes”の機能追加

Pgpool-IIの開発チームでは、Pgpool-II 3.6を11月にリリースすべく準備を進めています。今回は、その中から “show pool_nodes” コマンドの機能強化についてお知らせします。

“show pool_nodes”コマンドは、SQLのshowコマンドと同様にPgpool-IIに送信することができます。ただし、このコマンドは、PostgreSQLまで送られず、Pgpool-II内部で処理され、結果がクライアントに送信されます。以下が Pgpool-II 3.6でのshow pool_nodesの表示結果です。

 


 node_id | hostname |  port | status | lb_weight |   role  | select_cnt | load_balance_node | replication delay
---------+----------+-------+--------+-----------+---------+------------+-------------------+-------------------
       0 | /tmp     | 11002 | up     | 0.500000  | primary | 0          | true              | 0
       1 | /tmp     | 11003 | up     | 0.500000  | standby | 0          | false             | 3288
(2 rows)

赤で表示されている部分が3.6で変更ないし新規に追加された部分です。

まず、”status”ですが、これはPostgreSQLの状態を表します。”up”は稼働中、”down”でダウン状態を表します。これは以前はそれぞれ数字の”2″と”3″だったので、それに比べると直感的にわかりやすくなっていま。

“load_balance_node”は、このセッションで選択された「ロードバランスノード」かどうかを表します。ロードバランスノードとは、負荷分散のために検索クエリを投げる先のPostgreSQLサーバのことです。この例では、ノード0がプライマリサーバであると同時に、検索クエリの投げ先にもなっていることがわかります。”lb_weight”を見ると、それぞれのサーバが0.5ずつと、均等に割り当てられているので、1/2の確率で、0または1のノードがロードバランスノードになります。

ロードバランスノードかどうかは、Pgpool-II 3.6ではフェイルオーバの際に重要な意味を持っています。以前は、フェイルオーバが発生すると、すべてのセッションが切断されてしまっていましたが、Pgpool-II 3.6では、あるスタンバイノードが切断されても、そのセッションから見てロードバランスノードになっていなければ、フェイルオーバの際にもセッションが切断されないのです。この理由もあって、Pgpool-II 3.6ではロードバランスノードかどうかを表示するようになったわけです。

最後に “replication_delay” ですが、これは言うまでもなくストリーミングレプリケーションにおけるレプリケーションの遅延量です。単位はバイトで、数字が大きければ大きいほど遅延も大きいことになります。0なら、遅延はまったくありません。プライマリサーバでは、当然のことながら遅延は常に0です。

1 thought on ““show pool_nodes”の機能追加

コメントを残す