Pgpool-II 3.6の新機能[その2]

前回に引き続き、Pgpool-II 3.6の新機能を解説します。

PGPOOL SHOW/SET

これらは、PostgreSQLのSHOW/SETコマンドと似ています。PGPOOL SETを使うと、pgpool.confの設定値をそのセッションの間だけ変更することができます。今までは、pgpool.confの設定値を変更するには、pgpool.confを変更して再読み込みさせるしかなかったのですが、これでは他のセッションにも影響を与えてしまいます。こういった問題がPGPOOL SETコマンドで解決します。ただし、すべての設定変数に対応しているわけではありません。対応している変数については、Pgpool-IIのマニュアルをご覧ください。

一方PGPOOL SHOWですが、従来もSHOW POOL_STATUSコマンドで設定値を表示できたのですが、すべての設定値が表示されてしまうため、不便な場合もありました。PGPOOL SHOWでは、1個の変数の値だけを表示できるところが違います。

PostgreSQL 9.6のSQLパーサの取り込み

Pgpool-IIは、SQL文の解析を正確に行うために、SQLパーサを自前で持っています。このSQLパーサは、PostgreSQLから移植したもので、今回は最新版のPostgreSQL 9.6のパーサを移植しました。これにより、”COPY INSERT … RETURNING”などの最新のSQLを正確に認識できるようになりました。

性能改善

前回に引き続き、Javaなどが使用する拡張プロトコルの性能を改善しました。今回は、大量の行が返却されるSELECT文の性能が良くなりました。実際に試したところ、47%から62%の性能改善が確認できました。(もちろん、どのような場合でもこのような改善が見られるわけではありません)

ドキュメントの改善

従来Pgpool-IIのドキュメントは、手書きのHTMLで作られていたのですが、さすがにこれでは保守が困難なので、PostgreSQLと同様、まずSGMLで記述し、その後コンパイルしてHTMLを生成するようにしました。移行したばかりでまだまだ改善の余地があると思うので、是非ご意見をいただければと思います。

これ以外にも、ここに書ききれないたくさんの改良、バグ修正があります。詳細は、Pgpool-IIの公式マニュアルにあるリリースノートをご覧ください。