.NETまたはC ++バインディングを備えた成熟したスケーラブルなGraphDBを探しています
-
28-10-2019 - |
質問
GraphDBからの基本要件:
- 成熟した(本番環境に対応)
- ネイティブ.NETまたはC ++言語バインディング
- 水平スケーラビリティ:両方
- 自動化されたデータの冗長性とシャーディング
- 分散グラフアルゴリズム/クエリ実行
現在、私は以下を失格としました:
- InfiniteGraph:C ++ /.NET言語バインディングなし
- HyperGraphDB:C ++ /.NET言語バインディングなし
- Microsoft Trinity:成熟していない
- Neo4j:配布されていません
次のスケーラビリティについてはよくわかりません:
- スパース性DEX
- Francz Inc. AllegroGraph
- Jones GraphDB
水平スケーラビリティ機能に関する入手可能な情報は非常に一般的であることがわかりました。これには正当な理由があると思います。
どんな情報でもいただければ幸いです。
解決
残念ながら、あなたの基本的な要件は、今日のグラフの一般的な理解をすでに拡張しています-学界においてさえ。リストされている純粋なグラフデータベースでは、すべてのニーズを満たすことはできません。大規模な分散グラフと相互接続グラフを認識する分散グラフアルゴリズムは、依然として大きな研究課題です。したがって、アプリケーションの場合、適切に一致するグラフデータベース、グラフ処理スタック、またはRDFストアを見つけて、不足している部分を自分で実装するのが最適な場合があります。 アプリケーションの大部分が頂点に焦点を当てたオンライントランザクショングラフ処理(OLTP)(読み取り/書き込みが多い)であり、分散アルゴリズムをしばらく辞任してから、次のいずれかを使用できる場合:
- Neo4j
- OrientDB
- DEX
- HyperGraphDB
- InfiniteGraph
- InfoGrid
- Microsoft Horton
それがまだ頂点と分布に焦点を合わせたオンライン分析処理(OLAP)(ほとんどが読まれている)である場合、それは本当に重要です:
- Apache Hama(初期段階のプロジェクト)
- Microsoft Trinity(研究プロジェクト)
- ゴールデンオーブ(良いですが、Javaのみ)
- Signal / Collect(http://www.ifi.uzh.ch/ddis/research/sc、ただし調査プロジェクト)
または、エッジ、論理的推論/パターンマッチングに重点を置いており、セマンティックWebのようにエッジレベルのディストリビューションを使用して、これらのRDF- / Triple- / Quadstoreのいずれかを使用する必要があります。
- AllegroGraph(わかりました、それらはgraphdb / rdfストアハイブリッドです;)
- イエナ
- ごま
- スタードッグ
- 名人
- ...そしてさらに多くのRDFストア
良い出発点はDEXまたはNeo4jかもしれません:C ++用の優れた本当に高速なgraphdbカーネルを探しているなら、DEXが最適かもしれませんが、多くのネットワークとディストリビューションを自分で実装する必要があります。 Neo4jには多くの分散とフォールトトレランスがありますが、現時点では頂点シャーディングレベルであり、そのカーネルはJavaです。分散グラフアルゴリズムの実装に関するアイデアとインスピレーションについては、GoldenOrbとSignal / Collectをご覧ください。 別のアプローチは、AllegroGraphまたはStardogから始めることかもしれません。特にAllegroGraphは、彼らの考え方に慣れるまで、最初は少し注意が必要かもしれません。 Stardogはまだ若くてJavaですが、高速ですでにかなり成熟しています。