> I never understood what this achieved at all. Say Alice forks a request,
> sending one message to Bob and one to Charles (the two closest references
> for the key).
>
> Charles is fast and routes the request onward, finding the data with David
> and sends a reply back with the Data and David as the DataSource. David is
> Alice's new reference for the data.
>
> Bob is slow and routes the request onward, finding the data data with
> David and sends a reply which Alice discards. How is taking David's
> address as the reference on data she retrieved from Charles instead of
> data she retrieved from Bob mattering any to Bob or Charles?
>
The first thing it does is it makes sure Alice gets here request quicker,
not unimportant.
Seccondly, say Susan want the same bit of data just after Alice's request
and has roughly the same datastore as Alice had, so she'll also sends the
message to Bob and Charles. Both Bob and Charles now already have a copy
and since Charles is faster, Susan will have the 'best' reference in her
datastore.
And this means data *will* cross the Atlantic only a couple of times.

Furthermore I would suggest nodes reject requests with a messageId that they
have already serviced (in your example Bob's request to David) so Bob is
forced to look elsewhere for the data wich still could turn out to be the
faster route if the information is hard to find.


Neil












_______________________________________________
Freenet-dev mailing list
Freenet-dev at lists.sourceforge.net
http://lists.sourceforge.net/mailman/listinfo/freenet-dev

Reply via email to