1

I've been researching the pastry DHT for a personal project and I really like it but the routing has me confused.

The routing is done using prefix routing and uses leafsets for close nodes ( IE nodes with a common prefix with the local node ) and a routeset for more distant nodes.

Now my confusion comes from the following: The DHT is bootstrapped with 5 nodes. The server that functions as a bootstrapper adds every joined node to it's routeset and gives this to every node that joins the DHT afterwards.

So if prefix A joins, the bootstrapper adds it to it's routeset. If prefix F joins after A it will receive the routeset from the bootstrapper which contains A.

What if A needs to Route to F? It will never know of it's existence because the spec does not specify the copying of routing tables between nodes only the leafsets.

This is a small example and i hope it is clear. Is it possible to have a routing gap in pastry?

Kind regards

4

1 に答える 1

0

ルーティングテーブルのメンテナンスに関してあなたが言及したシナリオについては明確ではありません。

しかし、次の質問については、

A が F にルーティングする必要がある場合はどうなりますか? 仕様ではリーフセットのみのノード間でのルーティング テーブルのコピーが指定されていないため、その存在を知ることはありません。

A が F を見つけることができない場合、A は、ピア ノードのより近いフードを示す nodeIds のプレフィックスを照合することにより、数値的に F に最も近いノード (ノード "G" など) にルーティングします。次に、ノード G は、F がそのルーティング テーブルにある場合、または最も近い場合、F にルーティングします。

コンセプトが明確であることを願っています....

于 2014-03-31T06:36:57.797 に答える