On Wed, Jun 06, 2007 at 09:43:52PM +0100, Matthew Toseland wrote:
> X-Spam-Checker-Version: SpamAssassin 3.1.7-deb (2006-10-05) on 
>       emu.dh.bytemark.co.uk
> X-Spam-Level: 
> X-Spam-Status: No, score=-106.9 required=5.0 tests=AWL,BAYES_00,
>       FORGED_RCVD_HELO,USER_IN_WHITELIST autolearn=ham version=3.1.7-deb
> From: Matthew Toseland <toad at amphibian.dyndns.org>
> To: Discussion of development issues <devl at freenetproject.org>
> Date: Wed, 6 Jun 2007 21:43:52 +0100
> Subject: Re: [freenet-dev] Getting stuck down rabbit holes
> 
> After a long discussion with vivee, new proposal:
> On a request, we should, in addition to HTL and best-so-far, track the 3 best 
> locations of nodes we have seen, could have visited, but haven't.
> 
> When we run out of HTL, this indicates that we are either a) lost in a 
> pocket, 
> or b) have actually reached the end of the request. We send a DataNotFound to 
> our previous node, just as now. But the previous node can fork a request - 
> provided that the node it would fork to is at least as close to the target 
> than the 3rd-best not visited node. It could be one of the nodes we didn't 
> visit, or it could be a new option because a node came out of swapping.

Part of the idea to store the 3 best positions seen-so-far but not *visited*
(by the query taking greedy routing) is also to have 3 chances of backtracking
and continue at a good place (instead of just backtracking and forking to a
best-possible neighbor at a node as soon as possible).

If the backtrack does not hit a node with a neighbor closer than the 3rd best
position seen, then we backtrack until the query first reaches any(*) of the 3
nodes that had the closest neighbors-seen-so-far. From this node the query can
continue to the neighbor that was not previously visited (2nd-best for greedy
routing, and next step should have higher chances of leading to the 
destination).

(*) If we take the first one encountered out of these three, then we dont have
to "un-backtrack" (e.g. go down the branch again that we backtracked up from in
the first case) if the query reaches *another* dead end :-)

> This should severely limit the amount of forking that happens after a normal 
> completion, while still enabling us to backtrack our way out of rabbit holes.

/vive
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 187 bytes
Desc: not available
URL: 
<https://emu.freenetproject.org/pipermail/devl/attachments/20070606/f231b5d6/attachment.pgp>

Reply via email to