Theo writes:
> Let's just consider a set of inserts and requests for the same routing key
> (assuming multiple inserts can share the same routing key).  Imagine
> inserts and requests as ants and data as sugar.  Initially one insert ant
> wanders into the network dropping sugar at various random places.  Now
> another request ant finds the sugar.  Other request ants notice the
> chemical trail of that ant and start following it.
>
> More insert ants arrive from different directions with sugar which they
> want to drop (real ants don't do this =).  They follow the chemical trail
> too and reinforce it.  But they don't just go to the end and dump all the
> sugar in a big pile.  They drop sugar all the way along.
>
> Further request ants are now attracted to the sugar that's being deposited
> along all these subsidiary trails leading into the first trail.  THEY DO
> NOT FOLLOW THE TRAIL TO THE END.  Instead, they start creating new trails
> that lead to these subsidiary piles.  These new trails grow in importance,
> and ants even stop visiting the original sugar piles, and the first
> chemical trails evaporate and disappear.

This does seem to be a good model.  But consider an ant inserting a new
data item into the net using this same key.  It creates a sugar trail and
goes HTL hops into it, probably merging with some other trail at some
point.

Now consider a request for that same key.  Suppose it traverses the full
HTL hops and gathers all the instances of data under that key from all
the nodes in that HTL-long path.

Will it find the new data?  I say it will, if Freenet works.  Here is why:

Consider inserting new data that is not actually the same key, but a very,
very similar key.  So it follows the same closeness algorithm and takes
the same path.  Then consider a request for that same key.  It will be
found, by the assumption that Freenet works.  But the insert and request
use the same routing as the insert and request for the original key we
were considering.  Therefore the new data inserted under the same key
will be found by a request for that key, if the request routes for the
full HTL.  QED.

This means that each new data inserted leaves a path which gets crossed
by each data request for that key (at least, for almost all of them).
Therefore if we consider each route extending for the full HTL (as does
happen on inserts, and as would have to happen on requests which will
return all matches), almost all such inserts and requests for a given
key will meet.  And once met, they will follow to the same point.

While you are right that requests and inserts will spread the data in
different directions, this argument seems to show that the different
trails will in fact converge.

Hal

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

Reply via email to