ページの先頭行へ戻る
Enterprise Postgres 10 解説書
FUJITSU Software

1.11 インメモリ機能による集計処理の高速化

FUJITSU Enterprise Postgresでは、カラム型のインデックスとデータのメモリレジデント機能によるインメモリ機能を提供しています。これにより、ディスクI/Oを削減して、集計処理を高速化することができます。

注意

本機能は、Advanced Editionのみで使用できます。

カラム型のインデックス VCI

集計処理においては特定の列中の大部分のデータを必要とする処理が多くあります。しかし、従来の行型のデータ構造では不要な列も読み出してしまうため、メモリやCPUキャッシュの利用効率が悪く、十分な速度が出ません。そこで、FUJITSU Enterprise Postgresはカラム型のインデックスであるVCI(Vertical Clustered Index)を提供します。これにより上記の問題を解決し、集計処理を高速化できます。

VCIは以下のような特徴を持ちます。

また、下記のように圧縮機能と並列機能も備えています。

データのメモリレジデント機能

以下の機能により、VCIのデータをメモリに常駐させ、集計処理のたびに発生するディスクI/Oを抑止します。

本機能の狙い

本機能は新たに追加したリソースを効率よく活用できるデータ構造をとり、通常業務における既存の集計処理を並列検索以上に高速化することが狙いです。別途提供している並列検索機能も集計処理の高速化を目的としていますが、空きリソースを活用して夜間バッチを高速化することが狙いである点が異なります。

VCIのアーキテクチャ

パラメータ設定等に必要となる基本的な用語の説明のため、VCIのアーキテクチャについて簡単に解説します。

業務データのリアルタイムな利用を実現するための、更新と集計それぞれについての動作を述べます。

VCIはカラム型のデータ構造であるROS(Read Optimized Store)に加えて、書き込みバッファである行型のWOS(Write Optimized Store)を持ちます。更新ごとにカラム型へ変換すると、更新処理のレスポンスに大きな影響があるためです。このため、更新時には行型のWOSへ同期的にデータを反映します。WOSに一定以上のデータが溜まったときに、ROS制御デーモンが更新とは非同期にROSへ変換します。以上のように、VCI全体でテーブルの対象列との同期を実現しながら、更新のオーバーヘッドを抑えます。

検索時にはWOSとROSを合わせて利用することで、VCIを利用しない場合と同じ検索結果を得られます。具体的には、集計処理ごとにWOSをローカルなメモリ上のLocal ROSに変換し、ROSと合わせて集計します。

参照

VCIの導入と運用についての詳細は、“運用ガイド”の“インメモリ機能の導入と運用”を参照してください。

VCIを利用した検索についての詳細は、“アプリケーション開発ガイド”の“Vertical Clustered Index(VCI)を利用した検索”を参照してください。