こんにちは。技術部の髙岡です。
4/25 東京、5/10 大阪で開催された、第21回PostgreSQLエンタープライズ・コンソーシアム(略称:PGECons)の成果発表会参加の報告をいたします。
私はPGEConsに今年から初めて参加し、成果発表会で登壇させていただきました。
PGEConsの成果物の場所
成果発表会の資料は公開されております。
https://www.pgecons.org/2019/03/26/4924/
2012年度の活動以降に作成したコンテンツは、以下から参照することができます。
https://www.pgecons.org/works_index/
PGEConsがこれまでに作成したコンテンツから、性能や、データベース移行、データベース運用にまつわる可用性やセキュリティなど、多岐にわたる切り口から情報を探せるようになっております。
成果発表会の内容
成果発表会のトピックの中で、技術的なテーマに関する項目を抜粋します。
- PostgreSQLをさらに活用するためのヒント
~パーティショニング、Windowsでの運用、性能トラブル対処法~ - PostgreSQL 11 の性能および新機能
- はじめてのPostgreSQL移行
私が発表を担当したのは、1.の「性能トラブル対処法」です。
発表に関する所感
発表の中で、個人的に印象に残った内容の一部をご紹介いたします。
参照系の性能変化は無かったが、更新系は10%程度の性能向上が見られたそうです。
その性能向上の原因を追求した結果が報告されました。
PostgreSQLは、バージョンが上がるほど、性能だけでなく機能の改善も見受けられる傾向がありますので、できるだけ最新バージョンを採用するとよいと思います。
異種DBMSから移行するために必要な作業をまとめた報告でした。
本年度追加した内容をいくつか発表されていたのですが、私が特に参考になると思ったのは、移行コストの算出方法です。
計画段階でコストはとても気になりますので、とても参考になると思いました。
パーティションとは他のRDBMSにもよくある機能で、テーブルを日時など指定した単位で物理的に分割することにより、参照や削除の性能向上を目的とした機能です。
V11になってから、パーティション機能が性能面でも管理面でも向上しているとの報告でした。
有償でなく無償で使用できるPostgreSQLのパーティション機能は、ビッグデータ時代のデータを管理する器としての選択肢となりうる機能だと思いました。
これは私が発表した箇所に含まれる内容の一部です。
VACUUMとは他のRDBMSには無いPostgreSQL独自の機能で、コミット済みで不要となった領域を回収して再利用可能とする処理のことです。
デフォルトのVACUUM設定だと、更新処理が頻繁に発生して「不要領域の発生速度>VACUUMの不要領域回収速度」となった場合に、不要領域の回収が追いつかずに、テーブル領域が拡大してしまう事象が発生します。
2つのパラメータ(autovacuum_vacuum_cost_limit、autovacuum_vacuum_cost_delay)の値を調整することによって、「不要領域の発生速度<VACUUMの不要領域回収速度」と調整することができるので、この事象を回避できるという検証結果の報告です。あまり世の中に知られていないパラメータ設計なので、とても有益な情報だと思いました。
尚、こちらは、同じチームで活動された富士通ソーシアルサイエンスラボラトリ(富士通SSL)の技術者の皆様が調査・検証した成果物を、私が発表用に整理したものです。