グラフデータベース「Neo4j 2.2」リリース、read/write性能が大幅に改善

 スウェーデンNeo Technologyは3月25日、グラフデータベースNeo4jの最新版「Neo4j 2.2」をリリースした。性能の強化に主眼が置かれており、read/write性能を大幅に改善したという。

 Neo4jはJavaで実装されたグラフデータベースで、グラフ理論を用いてデータを取り扱う。ノードとノードの関係としてデータのパターンを表現し、格納できる。ACID準拠で、SQLライクなクエリ言語Cypher Query Languageを利用してデータの操作ができる。ライセンスはGPLv3。

 Neo4j 2.2は2013年12月に公開されたNeo4j 2系の最新版となり、2.1を元に20人年以上の開発作業を費やしたとのこと。性能強化が大きな特徴となり、拡張性と性能についてお互いを犠牲にすることなく、各種read/write処理を大規模な運用にも耐えうるスループットで実行できるようになったという。

 write処理については、新しいライトバッファアーキテクチャの導入やディスクへのトランザクションフラッシュの最適化、毎秒100万件のデータインポートなどにより、前バージョンと比較して最大100倍の高速化が可能という。中でも新機能であるライトバッファアーキテクチャはグラフの初期の読み込み、並行サーバーを利用するアプリケーションなどで書き込みの拡張性を大きく改善するとしている。

 read処理ではインメモリページキャッシュの導入、並行ワークロードの高速化などにより前バージョンと比べて最大10倍高速化が図れるとしている。新しいインメモリページキャッシュはLRU-Kアルゴリズムベースのインメモリデータベースで、データ損失などのデメリットなしに、ノードレベルと関係レベルのロッキングをサポートするという。

 独自グラフクエリ言語Cypher Query Languageも強化された。コストベースのクエリオプティマイザ導入などにより最大で100倍高速化されたという。処理のステータスを示すグラフ機能やクエリプランの視覚化も可能になった。

 開発面も強化しており、Webブラウザへのコードサンプルの組み込みによるクイックスタート、RDBMSからのマイグレーションガイド、Cypherクエリを無効にするコマンドボタンなどが新たに加わった。グラフモデルをSVGやPNGなどの画像形式でエクスポートすることも可能になっている。

 Neo4j 2.2はプロジェクトのWebサイトより入手できる。

Neo4j
http://neo4j.com/