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
