オープンソースのグラフデータベース「Neo4j 4.0」正式版リリース。リアクティブアーキテクチャを新採用

2020年2月12日

オープンソースのグラフデータベースであるNeo4jの最新版「Neo4j Graph Database 4.0」正式版がリリースされました。

一般に、リレーショナルデータベースではテーブルのあいだで関係が設定されますが、グラフデータベースではデータひとつひとつがほかのデータとの関係を持てます。

また、あるデータとデータとの関係において重要度や距離、評価、時間間隔といった属性も持たせることができます。

そのためリレーショナルデータベースでは商品一覧を記録した商品テーブルを、売り上げを記録した売り上げテーブルと連係させることで、どの商品がどれだけ売れたかを示すことができる、といった用途に使われるのに対して、グラフデータベースではソーシャルメディアのような、ユーザーが別のユーザーをフォローしている状態や、複数のドキュメントのあいだの参照関係、電力や通信機器などのネットワーク構造や状態をデータベース化する用途などに向いています。

Neo4j 4.0でリアクティブアーキテクチャを採用

Neo4jはそうしたグラフデータベースの中でも代表的なソフトウェアの1つです。

高い処理性能を持ちつつ、データの整合性を保つトランザクション処理が可能で、クラスタ構成による分散処理もサポート。障害時のフェイルオーバーも可能です。

クエリ言語には独自の「Cypher」を用います。

Neo4j 4.0での最大の目玉は、Reactive Architecture(リアクティブアーキテクチャ)を備えたことです。

これは大規模な検索結果が返ってくるときでも、クライアント側がそれを一括で受け止めるのではなく、返ってくるフローを制御できるというもの。

Introducing Neo4j Graph Database 4.0 [GA Release]」から引用します。

A client application fully controls the flow of records, which a server or cluster produces, so there’s no longer a tsunami of records flowing back. Now we have control flow that goes all the way through the stack, whether it’s synchronous or asynchronous execution. This is based on reactive streams with a non-blocking, back-pressure library, and it’s exposed through the reactive API in version 4.0 of the Drivers.

クライアントはサーバやクラスタが生成したレコードの流れをすべてコントロールすることで、津波のように大量のレコードがクライアントに返ってくる、ということはもはななくなった。

同期的もしくは非同期的な実行であっても、(Neo4jの)スタック全体のフローをコントロールできる。これはノンブロッキングとバックプレッシャーライブラリによるリアクティブなストリームに基づくものであり、バージョン4.0のドライバーのリアクティブAPIを通じて利用できる。

また、Neo4j 4.0では、データを任意に分割して複数のデータベースへ分散させるシャーディングと、複数のデータベースを連係させるフェデレーションによってデータベースのスケールアウトを実現、より高いスケーラビリティを提供するとしています。

さらに同一インスタンスもしくは同一クラスタ内に複数のデータベースを持てるマルチデータベース機能を搭載し、より柔軟なデータベース配置も可能になりました。

Neo4jには有償のEnterprise Editionと無償のCommunity Editionがあります。対応OSはLinux、Windows、macOS。

このエントリーをはてなブックマークに追加
follow us in feedly




カテゴリ

Blogger in Chief

photo of jniino

Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed


最新記事10本