PostgreSQL 9.6をエンタープライズで使う性能や方法を検証 〜PGECons活動成果発表会開催

PostgreSQLエンタープライズ・コンソーシアム(PGECons)は5月15日、2016年度の活動について報告する「第16回PostgreSQLエンタープライズ・コンソーシアムセミナー ~2016年度活動成果発表会~」を都内で開催した。技術部会の各ワーキンググループ(WG)による技術検証など2016年の成果が報告された。
PGEConsは、ミッションクリティカル性の高いエンタープライズ領域へのPostgreSQLの普及を推進することを目的として設立された団体で、正会員17社、一般会員40社が集まっている。4月には発足5年を迎えた。
開会あいさつに立った理事長の小西史和氏(NTT)は、「今回は200名を超える登録があった。2016年にはPGConf.Asia 2016が日本で開催されたこともあり、また今年はPostgreSQL 10のリリースも予定されており、PostgreSQLの盛り上がりを感じる」と語った。

PostgreSQL 9.6はスケールアップ性能が向上
WG1(新技術検証WG)は、PostgreSQL 9.6の性能や新機能について、大規模基幹業務を想定して検証した結果を報告した。2016年度の活動テーマとしては、定点観測である「スケールアップ検証」や、新機能の「パラレルクエリ」、「Pgpool-II検証」、「JSON/JSONB」、「全文検索」、「VACUUM改善」が取り上げられた。
まず、スケールアップ検証のうち、参照系の性能について。PostgreSQL 9.2で検証を始めてから9.4まで大きな向上はなかったが、前バージョンの9.5で最大スループットの向上が見られたという。検証は、オンメモリでSQL 1文の負荷を大きくするという、CPUに負荷がかかる条件でpgbenchを実行した。PostgreSQL 9.6はクライアント数192で最高性能36,300TPSに達し、9.5から最大46%の向上があったという。CPU利用率は100%で、有効にCPUを利用できていることが確認できた。
続いて更新系。参照系の検証と同じマシンを用い、ストレージはデータベースクラスタとWALを別ボリュームにして検証した。PostgreSQL 9.6では9.5からスループットのピーク値が約30%向上し、またクライアント数192までスループットが伸びることを確認したという。



次にパラレルクエリ。PostgreSQL 9.6では、パラレルスキャン、パラレル結合、パラレル集約の3種類が実装された(デフォルト設定では無効)。2016年度の検証では、パラレルクエリの並列度と処理性能の関係の検証、パーティションによる処理性能向上との比較、テーブル結合時の挙動確認の3種類が検証された(3つ目の検証の報告は割愛)。並列度と処理性能については、ワーカー数40まで性能向上し、処理時間は約1/25に短縮したという。また、パーティションとの比較としては、パラレルクエリによりパーティションの弱点を補完できることを確認したという。

Pgpool-IIについては、「ネイティブレプリケーション」「ストリーミングレプリケーション(非同期)」「ストリーミングレプリケーション(同期)」(9.6から登場)の3種類のレプリケーション方式によってどう変わるかを検証した。結果としては、参照系ではいずれも同様にスケールアウトし、更新系では方式により特性が違うことが報告された。

JSON/JSONBについては、「RDB」「JSON」「JSONB」「ハイブリッドJSON」(検索キーのみPostgreSQLのカラムに)「ハイブリッドJSONB」の各モデルでの性能を比較した。格納性能ではRDBが最速であり、JSONとJSONBではロードはJSONが、インデックス作成はJSONBが速かった。検索性能ではRDBとハイブリッドモデルが最速で、JSONよりJSONBのほうが速かった。


全文検索については、日本語検索に対応したpg_trgm(トリグラム方式)、pg_bigm(バイグラム方式)、PGroongaの3種類を、Wikipediaの文章データで、英語キーワードと日本語キーワードで検証した。結果として、PGroongaはほとんどの場合に高速だがインデックスサイズが大きいこと、pg_bigmは英語キーワードでノイズ除去処理で時間がかかることなどの特性が報告された。

VACUUM改善については、PostgreSQL 9.6ではページ内容が凍結済みというフラグが追加され、古いまま更新されないデータの多いテーブルに有効とされている。検証結果として、未凍結のページだけスキャンしているという挙動を速度から確認したという。

商用データベースからPostgreSQLへの移行見積りのガイド
WG2(移行WG)は、商用データベースからPostgreSQLに移行するためのガイド文書の整備について報告した。
WG2は、異種DBMSシステムをPostgreSQLへ移行するプロセスが確立していないことが普及を妨げていると認識し、移行を検討する際のガイドラインを提示する活動をしている。これまで「異種DBMSからPostgreSQLへの移行ガイド」を14編、本編のみでも合計500ページ超の分量で作成している。
ただし、これまで移行作業の実施者向けのガイドが中心だったため、2016年度は採用を決定する立場の人を対象として、移行作業コストを把握するための「DB移行開発見積り編」を作成した。その中でも2016年度は、Oracleのデータベースオブジェクトを対象にした。ガイドはすでにPGEConsのサイトで公開されている。
活動報告では、「DB移行開発見積り編」のガイドからいくつか取り上げて紹介がなされた。たとえば、テーブルは、通常表として利用できるものはOracleと変わらず使え、一時テーブルは差があり、パーティションテーブルは機能の組み合わせで代替できるという。
作業にあたっては、当初はOracleのマニュアルに書かれた機能を順に比較していたが、それを業務で使う機能に絞ったという。なお、なお、関数やPL/SQLにも挑戦したが、2016年度には成果物まで至らなかったとのことだった。
また、OracleからPostgreSQLへの移行ツールOra2Pgの有効な範囲についても調査し報告がなされた。過去の成果物と比べると、最新バージョンではデータ型対応など改善されていることも多かったという。
2016年度のまとめとしては、見積もりという新しい観点でガイドを作れたことから、移行コスト見積もりは範囲を広げて今後も継続していくと語られた。ただし、1年という期間で成果を出すことに縛られてしまったことが反省され、今後は成果物作成完了の年度縛りが外れたと説明された。





レプリケーション機能と異種データベース連携の機能を調査
WG3(課題検討WG)は、毎年、2テーマに分かれて活動しているという。2016年度の活動としては、レプリケーションと異種データベース連携の2つのテーマで活動したとのことで、活動報告でもそれぞれの班ごとに報告がなされた。
まずレプリケーション班。2016年度には、ストリーミングレプリケーションの既存機能の整理および最新機能検証と、マルチマスタのBDR(双方向レプリケーション)を調査した。ストリーミングレプリケーションについては、レプリケーションスロット、同期レベル、pg_rewindによる巻き戻しの3つの機能を調査。それぞれ用途や注意点などをまとめた。
BDRは、主に地理的に分散したクラスタのための機能だ。切り離した場合の操作や、競合時の動作、ノード障害時の挙動確認などについて報告された。また、性能検証についても、大幅なレスポンス向上を確認したという。





異種データベース(DB)連携班では、PostgreSQL以外のデータベースとの連携について調査した。方式としては、外部データラッパ、ロジカルデコーディング、DB同期ツール、ETLツールの4種類を扱い、調査・評価して一覧表としてまとめたという。
外部データラッパについては、PostgreSQLの機能で使えることや、これまでいろいろなラッパーが出ていること、データをPotgreSQLに保存しない場合などに向いていると説明された。ロジカルデコーディングについては、更新内容を自由に伝搬できる反面、プラグインやプログラムの開発が必要となり、PostgreSQL上の一部のテーブルを共有したい場合に向いていると説明された。DB同期ツールについては、双方向に差分反映によるデータ更新ができることや、ラッパー非対応なデータベースとの連携などに使えることが説明された。ETLツールについては、対象データベースでのシステム開発の経験が少ないときや、開発期間や開発工数が少ないとき、アプリケーションの継続的な改修があり処理の可視化が必要なときなどに使えると説明された。





CR部会と運営委員会の報告も
技術部会のほか、CR(Community Relations)部会の報告もあった。CR部会は、国内のエンタプライズ分野での技術課題をPostgreSQL開発コミュニティにフィードバックしていくことを目的としており、2016年に発足した。2016年はほとんど技術課題を集約する段階だったという。その中で1点、メッセージID(エラー番号)付与機能について、PGConf.Asia 2016でフィードバックしたことが報告された。


また、運営委員会からも、2016年度の活動と2017年度の活動予定が報告された。2016年度の報告としては、毎年公開している成果物の形式をPDFからHTMLに変更したことが語られた。アクセスしやすさと同時に、海外の人が翻訳サイトにかけらえるようにするという。2017年度については発信力強化というテーマや、会員を活発化するためにテレビ会議による遠隔地からの参加について検討していることなどが語られた。


連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- pgpoolの可能性
- SRA OSSとTIS、共同でPostgreSQLの性能監視が行えるZabbixテンプレートをOSSとして公開
- 主要なPostgreSQLクラスタ
- PostgreSQL9.0の安定性と高い可用性を実証 アシストによるPostgreSQL検証セミナーレポート
- SRA OSS、OSSデータベースPostgreSQLの商用版「PowerGres 9.4」の販売を開始
- PostgreSQLエンタープライズコンソーシアムが発足初年度活成果を発表
- pgpool-IIのインストール方法
- SRA OSS、PostgreSQL 11をベースとした「PowerGres V11」を発表
- SRA OSS、PostgreSQL9.3の技術情報公開とサポートを開始
- JSONBの機能強化