PGConf.dev 2025参加レポート - カラムナストアによるデータ検索高速化:技術者Blog
PostgreSQLインサイド

岩田 彩

富士通株式会社
ソフトウェアオープンイノベーション事業本部 データマネジメント事業部

はじめに

2025年5月13日から16日にかけてカナダ・モントリオールのPlaza Center-Villeで開催されたPostgreSQL Development Conference 2025(PGConf.dev 2025)に参加し、50分枠のセッションで講演を行いました。本記事では、講演の内容とともにPGConf.devの概要やその特徴についてご紹介します。

モントリオールの街並み

モントリオールの中心部に位置するモン・ロワイヤルの丘です(写真1)。バスでも頂上へ行けますが、私が選んだルートは頂上まで急な階段が続き、残念ながら登頂は叶いませんでした。旧市街地にあるノートルダム大聖堂は、その壮麗な姿が印象的です(写真2)。

写真1:モン・ロワイヤルの丘
写真1:モン・ロワイヤルの丘

写真2:ノートルダム大聖堂
写真2:ノートルダム大聖堂

PostgreSQL Development Conference(PGConf.dev)とは

PostgreSQL開発者とコミュニティ運営者が年に一度、一堂に会して各種講演や開発中の機能の議論を行う国際カンファレンスです。世界各地で大小さまざまなPostgreSQLカンファレンスが開催されていますが、今回参加したPGConf.devの特徴のひとつは、開発者や各地域のPostgreSQLコミュニティの運営者が多数参加することです。このカンファレンスは、将来のバージョンに向けた新機能や機能改善について活発な議論が行われ、PostgreSQLの今後の方向性を決定する重要な場となっています。
また、今年のPGConf.devでは、拡張機能(Extension)の開発に関するイベント「Extension ecosystem & community summit」がPGConf.devに先立ち同会場で開催されました。これは、コミュニティがPostgreSQLユーザにより良く使ってもらおうと、エコシステムのための拡張機能の開発にも注力していることがわかります。

富士通からの参加と講演

今回のカンファレンスには、富士通から8名(岩田、黒田、Hou、Ajin、Gary、Nishchay、Tim、Marcos)参加しました。私が確認した限りでは、これは日本企業としては最多の参加人数となります。講演については、HouとAjinが論理レプリケーションについて、Gary、Nishchayが学習型インデックスについてそれぞれ発表を行いました。

講演内容:A journey toward the columnar data store

私の講演では、カラムナインデックス機能であるVertical Clustered Index(以下、VCI)について発表しました。具体的には、更新速度を維持しつつカラムナの検索機能を実現するための実装アイディア、性能測定の結果、そして今後コミュニティ内で開発や検討が必要な機能について解説しました。

YouTubeで講演動画を見る
※こちらは英語の動画です。日本語の字幕でご覧になる場合はYouTubeの自動翻訳をご利用ください。

ビジネスにおいて発生するデータを分析し、その結果を意思決定のために活用することは、近年多くの業界で必要とされています。例えば、インターネット上で商品やサービスを販売するECビジネスでは、商品の販売データを用いて在庫の最適化を行います。このように情報分析のためにビジネスデータを活用するには、カラムナストア機能のような高い検索性能を実現できる機能が必要となります。
ビジネスデータは、業務において常に発生します。一般的なカラムナストア機能は、更新性能がネックとなります。そのため、データが高頻度で書き換わるRDBMSとカラムナデータの連携は定期的に行います。つまり、RDBMSのデータが更新されても、それがカラムナデータへと変換されるまでにはタイムラグが生じます。
VCIは、この「たった今発生したデータを含めてリアルタイムでデータ分析をしたい」という要望に対応できます。VCIを利用することで、更新性能を維持したまま、最新のデータを用いた高速なカラムナ検索を実現することができます。

図1:ビジネスデータのリアルタイム活用(講演資料より)
図1:ビジネスデータのリアルタイム活用(講演資料より)

Vertical Clustered Indexの実装

VCIは、書き込みに特化したWrite Optimized Storage(以下、WOS)とカラムナストア部分のRead Optimized Storage(以下、ROS)の2つのストレージ構造を組み合わせることで、更新性能を維持しつつ、カラムナストアによるデータ検索高速化を実現します。
この設計には2つ工夫があります。1つ目は、OLTPの更新性能を劣化させないため、発生したデータのカラムナへの変換を非同期に行うことです。2つ目は、新しく更新したデータを含む全データを検索対象にするための工夫です。カラムナへの変換は非同期で実行されるため、タイミングによってはカラムナに存在しない更新データが存在します。VCIのスキャンでは、既に列形式になっているデータと、更新されたばかりデータの両方をスキャンする仕組みを持ちます(図2)。
講演では、インデックス作成、テーブル内の検索、テーブル内データの更新、更新後の検索、非同期で行うデータの反映について順を追って解説しました。VCIについては、以下の記事でも詳しく紹介していますので、ご参照ください。

図2:VCIの仕組み(講演資料より)
図2:VCIの仕組み(講演資料より)

Vertical Clustered Indexの効果

講演では、VCIの効果を性能測定の結果を用いて説明しました。
TPC-Hの測定において、VCIスキャンとOSSのパラレルスキャンを比較したところ、VCIスキャンはOSSのパラレルスキャンと比較して4.4倍ほど高速になるという結果が得られました(図3)。
また、VCIが設定されている場合とされていない場合で更新処理の性能差を比較しました。結果として、両者にはほとんど性能差がないことが確認できました。VCIを設定すると内部処理は多少増加するため、全く劣化しないわけではありませんが、VCIが設定されていてもOLTPへの性能影響はほとんどありません(図4)。

図3:TPC-Hスキャンによる性能測定(講演資料より)
図3:TPC-Hスキャンによる性能測定(講演資料より)

図4:更新処理の性能差(講演資料より)
図4:更新処理の性能差(講演資料より)

講演後には、多数の質問をいただきました。その多くは技術的な内容であり、PostgreSQL開発者がVCIやカラムナ機能に対して強い興味を持っていることを改めて実感しました。また、機能のコンセプトについては、多くのコミッター含む開発者から肯定的なコメントをいただくことができました。
講演以外にも、提出したパッチについて直接コミッターからフィードバックをもらえる「Advanced Parch Feedback Session」に参加し、VCIパッチのコミットまでの進め方について具体的なアドバイスを得られました。カラムナ機能に詳しい開発者ともVCIについて議論を深めることができ、コミッター含む多くの開発者から、機能に関する有益なアドバイスやフィードバックをいただくことができました。

おわりに

PGConf.devの講演は、Call for Paperに申し込んだ中から選考委員によって選ばれたタイトルのみ発表できます。今回のPGConf.devでは、富士通のメンバーから3セッションも発表することができました。私たちは今後もPostgreSQLコミュニティに対し、継続的かつ熱心に貢献していきたいと考えております。
また、VCIについては、現在コミュニティでの開発を進めており、完成した際にはPostgreSQLの価値を高める機能として、利用者含めコミュニティ全体に大きく貢献できるものと確信しております。VCIの開発はこちらのスレッドで進めておりますので、興味のある方はぜひ一緒に開発しましょう。

関連リンク

PGConf.dev 2025での講演内容については、以下をご覧ください。

2025年8月4日公開

富士通のソフトウェア公式チャンネル(YouTube)

本コンテンツに関するお問い合わせ

Webでのお問い合わせ

当社はセキュリティ保護の観点からSSL技術を使用しております。

ページの先頭へ