Skip to main content
QUICK REVIEW

[論文レビュー] Nebula Graph: An open source distributed graph database

Min Wu, Xinglu Yi|arXiv (Cornell University)|Jun 15, 2022
Graph Theory and Algorithms被引用数 4
ひとこと要約

Nebula Graph は、数百亿個の頂点と数兆本のエッジを持つグラフに対して、高パフォーマンスな OLTP ワークロードを処理することを目的とした、オープンソースで分散型、スケーラブル、ネイティブなグラフデータベースです。ストレージとコンピューティングの分離を採用し、高可用性のために Raft を使用し、nGQL や openCypher といった SQL に似たクエリ言語をサポートしています。最適化されたパーティショニング、インデキシング、クエリ実行によりミリ秒未塔の応答遅延を達成しており、本番環境での大規模ベンチマークによって検証されています。

ABSTRACT

This paper introduces the recent work of Nebula Graph, an open-source, distributed, scalable, and native graph database. We present a system design trade-off and a comprehensive overview of Nebula Graph internals, including graph data models, partitioning strategies, secondary indexes, optimizer rules, storage-side transactions, graph query languages, observability, graph processing frameworks, and visualization tool-kits. In addition, three sets of large-scale graph b

研究の動機と目的

  • 数百億個の頂点と数兆本のエッジを持つ巨大なグラフを処理できる、高パフォーマンスでスケーラブルかつネイティブ分散型のグラフデータベースの設計と実装を目的とする。
  • 従来の RDBMS やモノリシックなグラフデータベースが、大規模な複雑で高密度に接続されたデータを処理する際の限界を克服することを目的とする。
  • ストレージとコンピューティングの分離、自動シャーディング、強力な一貫性を活用して、大規模なグラフ上でリアルタイムの OLTP ワークロードを実現することを目的とする。
  • nGQL や openCypher といった業界標準のクエリ言語をサポートし、ETL やグラフ処理、可視化の拡張性を提供することを目的とする。
  • 本番環境での実際のワークロードと大規模な展開を基にベンチマークを実施することで、本番運用レベルの信頼性とパフォーマンスを提供することを目的とする。

提案手法

  • Meta Service(メタデータおよびクラスタ管理)、Storage Service(Raft を使用した永続的かつ一貫性のあるデータストレージ)、Graph Service(ステートレスなクエリ実行)の3つの独立したサービスからなる分散システムとして Nebula Core をアーキテクチャ設計する。
  • データの分離を実現するためのグラフスペースを備えたプロパティグラフモデルを採用。頂点には一意な VID を、ラベルにはタグを、有向エッジにはタイプとランクを、プロパティには SQL に似た型を備えたキーと値のペアを用いる。
  • グラフデータをキー値ストレージ抽象化により管理し、頂点とエッジを VID の範囲でパーティショニングすることで、水平スケーリングと効率的なシャーディングを実現する。
  • プロパティに対するセカンダリインデックスを実装し、高速なポイント検索と範囲スキャンを可能にするとともに、複雑なグラフ走査を最適化するハイブリッド実行エンジンを採用する。
  • ストレージサービスで Raft 共識プロトコルを活用することで、レプリカ間の強力な一貫性と高可用性を確保する。
  • nGQL(Nebulaネイティブ)と openCypher の2つの宣言的クエリ言語をサポートし、OLTP ワークロードに適した効率的な実行計画を生成するクエリ最適化器を備える。

実験結果

リサーチクエスチョン

  • RQ1数百億個の頂点と数兆本のエッジを持つグラフに対して、ミリ秒未塔の応答遅延を維持しながら、どのように分散型グラフデータベースを効率的にスケーリングできるか?
  • RQ2どのようなシステムアーキテクチャとパーティショニング戦略が、分散型グラフデータベースにおける高スルーレートかつ低遅延の OLTP 操作を可能にするか?
  • RQ3ネイティブグラフデータベースとして、SQL に似たクエリ言語(nGQL と openCypher)と、プロパティベースのクエリに効率的なセカンダリインデックスを同時にどのように実現できるか?
  • RQ4実際のワークロードに基づくベンチマークを通じて、本番運用レベルの分散型グラフデータベースが達成できるパフォーマンスとスケーラビリティの保証は何か?
  • RQ5アーキテクチャの大幅な見直しを最小限に抑えながら、ETL パイプライン、グラフ処理、クラウドネイティブデプロイメントをサポートするにはどうすればよいか?

主な発見

  • Nebula Graph は、最大 100 台のサーバーを有するクラスタにスケーリングし、100 テラバイトを超えるデータを処理でき、企業向けワークロードにおける本番運用の成熟度を示している。
  • パス探索、近隣走査、サブグラフ検索といった複雑なグラフクエリに対しても、ミリ秒未塔の応答遅延を達成している。
  • ストレージとコンピューティングの分離により、水平スケーリングと高スルーレートが可能であり、Graph Service はマルチスレッドでステートレスに実行することで、同時に複数のクエリを処理できる。
  • Raft ベースのレプリケーションにより、強力な一貫性と高可用性が確保され、ノード障害発生時における自動リーダー選出とフェイルオーバーが実現されている。
  • ベンチマークの結果から、OLTP、グラフパターンマッチング、プロパティベースの検索など多様なワークロードにおいて高いパフォーマンスが確認され、アーキテクチャ設計の妥当性が裏付けられている。
  • Walmart、Tencent、Huawei、Meituan を含む主要企業が本番環境で採用しており、実世界でのスケーラビリティと信頼性が実証されている。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。