多くのクライアントが、必要な場合にはサーバーに接続し、一連のグラフ情報(ノード属性とエッジ)を含むプロジェクトに取り組んでいます。彼らはいつでも新しいノードやエッジを導入し、グラフ全体からいくつかの情報を要求することができます(2ノード間の最短距離、グラフの色付けなど)。待ち時間の少ない、常に更新されているグラフを処理するにはどうすればよいですか?
これは簡単なアルゴリズムを開発するのは非常に簡単ですが、グラフを同時に更新している多くのユーザー、グラフから情報を要求している多くのユーザーを処理できるように、非常に大きな(500k +)ノードや場合によっては非常に多くのエッジも扱う可能性があります。私は予見でき
課題:常に更新するグラフで
- は、私はかなりの計算時間が増加し、待ち時間になるたびに、誰かが情報を要求グラフ全体...を処理する必要が
- 非常に大きなグラフでは、計算時間と待ち時間が明らかにかなり高くなります(これは、大量の結果をバッチ処理して後で使用するためにインデックスに格納することによって解決されましたが、グラフは常に更新されており、ユーザーは最新の情報を必要としますが、これは実行可能な解決策ではありません)
- 何度もグラフを処理する必要があるため、多数のユーザーが情報を要求しています。
どのようにこれらの課題に直面しますか?私はハープとスパークを見ましたが、グラフが絶えず変化していない問題に対処する高遅延ソリューション(バッチ処理あり)や解決策があるようです。
グラフの異なる部分を処理してインデックスを作成し、グラフの更新箇所を把握してグラフのその部分(分散型動的プログラミングアプローチの一種)を再処理することを考えましたが、それがどれほど実現可能かはわかりません。
ありがとうございます!
Giraphを調べましたか?私はあなたが他人がすでに持っているように、自分自身でこれらの問題を解決して解決する必要があるとは思っていません。 –
私はそれを見ましたが、それはバッチベースであるようです...私が間違っているなら、私は再びそれを調べます – user947659
また、スパークグラフツールがあります。 –