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>
