富士通研究所は2月26日、データベースシステム上のタイムリーな大規模データ分析を可能にする、列形式のデータ格納と処理エンジンを開発したと発表した。

今回、オープンソース・データベースであるPostgreSQL上で、メモリの搭載量によらず、行形式データの更新を瞬時に列形式に反映できるデータ格納と列形式データを高速に処理する実行エンジンを開発した。

これにより、一般のデータベースが備えるインデックスという仕組みの中で高速に分析が可能になり、行形式や列形式といった格納方式の違いを開発者が意識することなく利用できる。

富士通研究所が開発した列形式のデータベース処理エンジンの仕組み

具体的には、メモリに入りきらない大容量の列形式データを効率的に管理するため、「エクステント」と呼ぶ大きな単位(約26万レコード単位)で、領域の確保や削除、さらに空き領域回収といったデータ領域管理を行う。大きな単位で管理すると同時に分析処理が長時間待たされるという問題が発生するが、これを防ぐために、エクステントに同時実行制御(MVCC)を導入し、分析処理とデータ領域管理が同時に走行できるようにした。

また、他のインデックスと同様、列形式インデックス(カラムストアインデックス)を作成することで、データベースが問い合わせする内容に応じて、適切なデータ格納方式(行形式あるいは列形式)を選び処理を行うようになる。カラムストアインデックスを作成した元の行形式データの更新にも追随して、列形式データも自動的に更新される。

さらに、並列実行による分析処理の高速化の効果を高めるため、PostgreSQLで並列動作する複数のプロセス間が低遅延でデータの受け渡しができるようメモリ共有の仕組みを新たに開発。これにより15コアサーバ1台で、従来のPostgreSQLの50倍以上の性能を達成することが可能になった。

富士通研究所は今後、富士通のデータベース製品「FUJITSU Software Symfoware Server」への装備に向け、同技術の2015年度中の実用化を目指す。