3

相互に接続されたデータベースの大規模なグラフ、事実上 1 つの巨大な分散データベースがあるとします。グラフ上の任意のノードは、そのネイバーに再帰的にクエリを実行することでデータベース全体をクエリできます。これにより、ネイバーから取得した結果が取得され、結合された結果がクエリ パスに渡されます。

また、ノード自体のデータベースに「十分に良い」結果が含まれている場合に再帰を停止する機能があると想定してください。これにより、適切な結果がすでに近くにある場合にネットワーク全体を照会する必要がなくなります。これは、私が言おうとしていることに関連性があります。

クエリが作成されるたびに、返されたデータをクエリを開始したノードに一歩近づけて転送するのは理にかなっていませんか? つまり、クエリされたノードは、そのネイバーにクエリを実行して X を取得し、自身にクエリを実行して Y を取得し、クエリを実行したノードに X+Y を渡し、X をデータベースに格納し、データベースから Y を削除します。これは最終的に、平均してクエリ中に参照されるノードの量に関して、分散データベースがそのノード間でデータのほぼ最適な分散を行うことになるのではないでしょうか?

この技に名前はありますか?

4

2 に答える 2

2

This topic comes up a lot in grid computing; you want to do a google scholar search for something like data grid replica placement. It works well if there's a lot of time-locality in accesses (if a node wants some data, it'll want it a lot in the near future) and the data is read-mostly. As yi_H points out, if there's a lot of big modifications of the data, "cache" (replica) coherency becomes a big issue.

于 2011-06-29T13:01:08.590 に答える