オープンソースのグラフデータベース「Neo4j 4.0」正式版リリース。リアクティブアーキテクチャを新採用
オープンソースのグラフデータベースであるNeo4jの最新版「Neo4j Graph Database 4.0」正式版がリリースされました。
Introducing Neo4j Graph Database 4.0 [GA Release] – by @jimwebber, Chief Scientist @Neo4jhttps://t.co/X8csuFuEFC#GraphDatabase #Neo4j
— Neo4j (@neo4j) February 4, 2020
一般に、リレーショナルデータベースではテーブルのあいだで関係が設定されますが、グラフデータベースではデータひとつひとつがほかのデータとの関係を持てます。
また、あるデータとデータとの関係において重要度や距離、評価、時間間隔といった属性も持たせることができます。
そのためリレーショナルデータベースでは商品一覧を記録した商品テーブルを、売り上げを記録した売り上げテーブルと連係させることで、どの商品がどれだけ売れたかを示すことができる、といった用途に使われるのに対して、グラフデータベースではソーシャルメディアのような、ユーザーが別のユーザーをフォローしている状態や、複数のドキュメントのあいだの参照関係、電力や通信機器などのネットワーク構造や状態をデータベース化する用途などに向いています。
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。
あわせて読みたい
新型コロナウィルス、海外からのVIPが来日中止などIT業界でも影響が出始め。バルセロナのMWCも中止に(記事更新)
≪前の記事
Apple、パスワードを不要にするFIDO Allianceへの加盟が明らかに