本作品はCC-BYライセンスによって許諾されています。通じてお寄せいただきますようお願いいたします。Incの米国、およびその他の国における商標もしくは登録商標です。Corporationの商標です。その子会社、関連会社の米国及びその他の国における登録商標です。文中の社名、商品名等は各社の商標または登録商標である場合があります。氏の日本およびその他の国における登録商標または商標です。Hat,Inc.の商標または登録商標です。Corporationの米国及びその他の国における登録商標または商標です。その子会社、関連会社の米国及びその他の国における登録商標です。文中の社名、商品名等は各社の商標または登録商標である場合があります。その子会社、関連会社の米国及びその他の国における登録商標です。文中の社名、商品名等は各社の商標または登録商標である場合があります。Canadaのカナダにおける登録商標およびその他の国における商標です。米国およびその他の国における登録商標です。Councilの商標です。商標または登録商標として使用している場合があります。PostgreSQL本体および各種ツールの情報収集と提供、整備などの活動を通じて、ミッションクリティカル性の高いエンタープライズ領域へのPostgreSQLの普及を推進することを目的として、2012年4月に設立された団体です。向けたPostgreSQLの適用領域の明確化」を大きな目標に活動しております(2012年7月6日開催のPGEConsセミナーより)。この目標に向けて技術部会では課題を以下の課題領域に分類し、三つのワーキング・グループ(WG)で分担することとしました。WG1の活動テーマ¶WG1では、PostgreSQLの新技術に対する技術検証、および新バージョンにおける性能検証を進めるにあたり、以下のような観点から個々の検証テーマをたてて、参加企業が集まってチームを作って具体的な検討を進めています。対して、前バージョンとの性能傾向の差異を把握するスケールアップマルチコアCPUでのスケールアップ性検証。Windows版PostgreSQL性能、および近年のPostgreSQLに関連する技術について調査と性能検証を実施し、その方法と結果を報告します。10を対象として以下のようなテーマで検証を実施しました。定点観測(スケールアップ)Windows版PostgreSQL性能パラレルクエリ全文検索レプリケーションFDW以下、各検証テーマごとの概要を紹介します。新旧バージョンにおけるスケール性能を比較する検証を行いました。大きな差は見られませんでした。大きな性能低下が見られました。10における更新系クエリのスケール性能低下の原因を重点的に調査、検証しました。今回の結論として、原因は10で変更されたセマフォによるものと見ています。Windows版PostgreSQL性能¶Linux上で実施していた定点観測と同様の測定をWindows版PostgreSQLでも実施し、Linux版PostgreSQLと、Windows版PostgreSQLの性能の傾向を評価しました。同一スペックのサーバ上でLinux/WindowsのOSの差異による測定を実施した結果、過負荷状態でなければ、Windows版PostgreSQLは性能面ではLinux版と遜色はないと考えられます。特定のPostgreSQLパラメータについて、Windows版固有のチューニングが必要か検証しました。shared_buffersについては、Linux版のチューニング方針とは異なり、参照主体のモデルでは、非常に小さな値を設定しても性能上の問題はないという結果となりました。wal_sync_methodについては、open_datasyncを設定することが妥当であるという結果となりました。9.5までは、メニーコア環境であっても1つのクエリでは1つのコアしか使用されませんでした。商用ソフトウェアでは以前から実装されていて、PostgreSQLでも長年実装が待ち望まれてきたメニーコアを有効活用するパラレルクエリが、バージョン9.6で実装され、バージョン10で強化されました。TPC-DSで定義されているクエリを題材とし、OLAPにおいてバージョン9.5〜10で、パラレルクエリによりどのように性能が変化するのかを検証しました。検証の結果、扱うクエリによってパラレルクエリのパフォーマンスは、パラレルクエリの外側にある要因に左右される可能性があることが明らかになりました。効果が十分に得られるかどうかの確認が必要であるものと考えます。近年の全文検索のユースケースでは、静的なデータを検索するだけではなく、データが継続して変更されているなかで検索を行う事が多くなっています。このユースケースでは、同一のDBに対して更新と検索が同時に発生するため、通常では十分なパフォーマンスが得られないと予想されることから、今回PostgreSQL10から実装されたロジカルレプリケーションを使用した負荷分散を行い、十分なパフォーマンスが得られるかどうか検証しました。検証の結果、MasterとSlaveに別々のインデックスを設定できるロジカルレプリケーションを利用した負荷分散構成をつくることで、全文検索用のインデックスによるデータ更新性能の劣化を起こさずに、全文検索用のインデックスを利用した高速な全文検索が可能になることが明らかになりました。レプリケーション¶PostgreSQLでは、9.0からレプリケーション機能を実装しており、継続的に機能強化が行われています。9.6からは、2台以上の複製先に対してデータを同期しながら更新が行える、複数同期レプリケーションが利用可能となりました。同期レプリケーション・非同期レプリケーション、またそれらが混在する構成において、どのように性能が変化するのかを検証しました。構成では総台数が同じでも同期の台数を増やすことで性能の低下が見られること、同期・非同期の台数を変化させることである程度一定の割合で性能値も変化することが確認できました。企業のデータ活用に非常に有望視されていますが、一方で性能的なオーバヘッドに対する懸念もあります。10系のFDW機能に注目して、外部テーブルの有無を条件として参照系、更新系における性能オーバヘッドを明らかにしました。今回の検証では、FDWを利用しない場合と比較してFDWを利用する場合は参照系では最低で4%、更新系では最低で66%のスループットとなりました。