技術部会ブログ

2017年度 WG1活動テーマの検討状況


8月10日、ちょうど PostgreSQL 10 Beta 3のリリース と時を同じくして、第2回 合同WG検討会が開催されました。各WGでは第1回に引き続き2017年度の活動テーマについて活発な議論が行われました。

WG1 (新機能検証WG) では、新バージョンの性能や新技術の検証を通じて有用性を明確化するという方針のもと、新バージョンPostgreSQL 10を中心にしながらも、それだけに縛られない、様々な活動テーマが議題に上がりました。

パラレルクエリの改善

パラレルクエリは、クエリを並列に実行することで性能を向上させる、PostgreSQL 9.6からの機能です。PostgreSQL 10では、Btreeインデックスによるインデックスキャンやマージ結合などにも対応し、より多くの状況で並列化できるように改善されています。
そうなると、巨大なデータに対して複雑なクエリを実行するOLAPのような用途で、どこまでPostgreSQLが性能を発揮できるようになったか気になりませんか?
WG1では、TPC-HやTPC-DSなどのベンチマークの特徴を見極めた上で、パラレルクエリの有無、バージョンの違いによるPostgreSQLの性能変化についての検証を検討しています。

ロジカルレプリケーション

ロジカルレプリケーションは、PostgreSQL 10の目玉となる新機能の1つで、トランザクションログを論理的な変更内容として転送し、レプリケーションする機能です。PostgreSQLのレプリケーションにはほかにもストリーミングレプリケーションがありますが、それとの大きな違いは、テーブル単位でレプリケーションしたり、レプリケーション先でデータを変更したり、異なるバージョン間でレプリケーションしたりできることです。
最近ではSNSの発展により誰もが情報を発信しつつ、検索もするという状況になっており、データの検索は静的なデータに対してだけでなく、頻繁に更新され続けるデータに対しても行われるようになっています。
そうした中、ロジカルレプリケーションを使用すると、レプリケーション先のみにインデックスを作成できます。それにより、レプリケーション元はインデックス更新のオーバヘッドがない更新用ノード、レプリケーション先はインデックス検索が可能で、複数ノード設置可能な検索用ノードとし、頻繁な更新の状況下での検索性能の向上が期待できます。
WG1では、更新のない場合と頻繁に更新され続ける場合における検索性能を比較するとともに、ロジカルレプリケーションによる性能向上への効果についての検証も検討しています。

そのほかにも、PostgreSQL 10の宣言的パーティショニングと従来のパーティショニングとの性能比較、Transparent Data Encryption for PostgreSQLによるデータ暗号化の性能検証、例年実施しているpgbenchによる前バージョンとの検索、更新性能の比較などの検証を検討しています。

活動テーマの選定はWG間で重複するテーマを調整する段階となり、ようやく終わりが見えてきました。次にWG1から報告する頃 (12月を予定) には、検証の途中経過について報告できると思います。

(tom-sato)