オープン DBMS Nebula Graph 3.2 のリリースが公開されました。これは、数十億のノードと数兆の接続を数えるグラフを形成する、相互接続された大規模なデータ セットを効率的に保存するように設計されています。 このプロジェクトは C++ で書かれており、Apache 2.0 ライセンスに基づいて配布されています。 DBMS にアクセスするためのクライアント ライブラリは Go、Python、Java 言語用に用意されています。
DBMS は、リソースを共有しない分散アーキテクチャ (シェアードナッシング) を使用します。これは、独立した自給自足のグラフ クエリ処理プロセスとストレージ ストレージ プロセスの起動を意味します。 メタサービスはデータの移動を調整し、グラフに関するメタ情報を提供します。 データの一貫性を確保するために、RAFT アルゴリズムに基づくプロトコルが使用されます。
ネビュラ グラフの主な機能:
- ロールベースのアクセス制御 (RBAC) システムを通じて権限が設定されている認証されたユーザーのみにアクセスを制限することで、セキュリティを確保します。
- さまざまなタイプのストレージ エンジンを接続する機能。 新しいアルゴリズムによるクエリ生成言語の拡張のサポート。
- データの読み取りまたは書き込み時の遅延を最小限に抑え、高いスループットを維持します。 632 つのグラフ ノードと 1.2 つのストレージ ノードのクラスター、8.4 億の頂点と 140 億のエッジのグラフを含む XNUMX GB のデータベースでテストした場合、レイテンシは数ミリ秒で、スループットは XNUMX 秒あたり最大 XNUMX 万リクエストでした。
- 線形スケーラビリティ。
- 強力で理解しやすい SQL に似たクエリ言語。 サポートされる操作には、GO (グラフ頂点の双方向走査)、GROUP BY、ORDER BY、LIMIT、UNION、UNION DISTINCT、INTERSECT、MINUS、PIPE (前のクエリの結果を使用) が含まれます。 インデックスとユーザー定義変数がサポートされています。
- 高可用性と障害に対する回復力を確保します。
- データベース状態のスライスを使用したスナップショットの作成をサポートし、バックアップ コピーの作成を簡素化します。
- 産業利用の準備ができています (JD、Meituan、Xiaohongshu のインフラストラクチャですでに使用されています)。
- 進行中の操作を停止したり影響を与えたりすることなく、データ ストレージ スキームを変更して更新する機能。
- データの有効期間を制限するための TTL サポート。
- 設定とストレージホストを管理するためのコマンド。
- 作業を管理し、作業の起動をスケジュールするためのツール (現在サポートされている作業は COMPACT と FLUSH)。
- 指定された頂点間の完全なパスと最短パスを見つける操作。
- サードパーティの分析プラットフォームと統合するための OLAP インターフェイス。
- CSV ファイルまたは Spark からデータをインポートするためのユーティリティ。
- Prometheus と Grafana を使用してモニタリング用のメトリクスをエクスポートします。
- Nebula Graph Studio Web インターフェイスは、グラフ操作の視覚化、グラフ ナビゲーション、データ ストレージの設計、スキームのロードを行います。
新しいリリースでは:
- 指定された式に一致する部分文字列を抽出するための extract() 関数のサポートが追加されました。
- 構成ファイルの設定が最適化されました。
- 不要な AppendVertices オペレーターを削除し、エッジ フィルターと頂点フィルターの適用を無効にする最適化ルールを追加しました。
- JOIN 操作、および Traverse および AppendVertices オペレーターでコピーされるデータの量が削減されました。
- SHORTEST PATH と SUBGRAPH のパフォーマンスの最適化
- メモリ割り当てが改善されました (Arena Allocator が有効)。
出所: オープンネット.ru