このプロジェクトについて
Aerospike Graph Service(AGS)はJVMベースのグラフデータベースエンジンであり、Apache TinkerPop 3.7.x GremlinワイヤプロトコルをWebSocket上で実装し、グラフデータをAerospikeクラスターに格納します。頂点と辺は隣接情報を集約するパックされたディスクレイアウトで保持され、ほとんどのトラバーサルホップを単一のAerospikeリードで解決可能になります。本サービスはGremlinトラバーサルを効率的なAerospikeオペレーションに変換し、Aerospike固有のクエリプランニング最適化を適用して、任意のTinkerPop互換ドライバ(gremlin-python、gremlin-javascript、Java用gremlin-driverなど)に結果をストリームします。
主な機能は以下の通りです:
- スケール時のp99単一桁ミリ秒秒単位の低遅延OLTPグラフクエリ
- 全グラフを対象としたGraphComputerジョブ(PageRank、連結成分、カスタムVertexProgram)を実行するためのSparkバックドOLAPモジュール
- CSV、GraphML、GraphSONファイルを直接Aerospikeデータモデルに取り込んで高速な初期読み込みを実現するSparkベースのバルクロード
- Aerospikeから継承した水平スケーリング、強い一貫性、予測可能なサブミリ秒リード、ハイブリッドメモリアーキテクチャ、クロスデータセンターレプリケーション
- 標準的なGremlinインターフェース。カスタム問い合わせ言語やドライバは不要。
デプロイメントはDockerに対応しています。graph-service-examplesディレクトリにあるdocker-composeファイルにより、AGS、Aerospikeデータベース、Zipkinを一緒に起動できます。既存のAerospikeクラスターに対しては、AGSコンテナを環境変数でクラスターのホスト、ポート、ネームスペースを指定して起動できます。設定はマウントされたpropertiesファイルでも提供可能です。
ソースからのビルドにはJDK 17(コードはJava 11バイトコードにコンパイルされる)、Maven 3.9+、Buildx付きDocker、python_on_whalesを持つPython 3が必要です。本プロジェクトは、OLTPエンジン、Sparkバルクロード、Spark OLAPモジュール、共有APIをカバーするマルチモジュールMavenビルドです。
AGSはApache License 2.0の下でリリースされており、AerospikeおよびApache TinkerPop/Sparkの商標表示が含まれています。
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.