I have been thinking for a few days about a "next generation" routing 
algorithm for Freenet, I call it "Freenet NG", and it is basically a 
replacement for the current simplistic mechanism with which the optimum 
node to which a query should be routed is selected.

The idea is that a "key response time spectrum" is maintained for each
node in the RT.  This is basically a record of which keys this node was 
successfully able to retrieve, and how long it took (failures are 
ignored).  Obviously, data won't be kept for ever - older data can be 
disposed of as needed.

When a request comes in for a given key, the expected response time for
each node to retrieve that key is estimated based on previously
collected data (the simplest way being to look at the response times for
keys close to the ones being sought, and get some kind of average - but
better algorithms are possible too, the trade-off being CPU
requirements). Whichever node has the lowest estimated response time is
the one to whom the query is routed.

This has the nice effect of making better use of your freenet node's 
prior experience, and remember that it will serve to make the freenet 
network adapt to network constraints too.

This improved algorithm could be deployed into the current network, and 
should work fine with other nodes (although they might be jealous of 
the new node's new-found brain power ;).

Thoughts?

Ian.

-- 
Ian Clarke                                                  ian at locut.us
Coordinator, The Freenet Project              http://freenetproject.org/
Founder, Locutus                                        http://locut.us/
Personal Homepage                                   http://locut.us/ian/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: 
<https://emu.freenetproject.org/pipermail/devl/attachments/20030328/f4c1918d/attachment.pgp>

Reply via email to