"State of the Freenet" status report
Ian Clarke <[email protected]> Wed, 18 Feb 2004 16:09:03 +0000
| Newsgroups | gmane.network.freenet.announce |
|---|---|
| Message-ID | <[email protected]> |
Hi all, just wanted to update everyone on recent progress, and also, once again, ask for your support. The last few weeks have been very interesting indeed. Since about July 2003 Freenet's performance inexplicably deteriorated, and since then we have been trying to find out why, and trying to find solutions to get it back to its previously healthy performance. Eventually we decided that the most likely explanation was simply that Freenet's users were pumping more requests into the Freenet network than the network was capable of handling. As each node became incapacitated through overload, it only increased the burden on other nodes in the network, resulting in the problem spiraling out of control, until eventually the majority of the messages being sent over the Freenet network (often over 95%) were nodes telling other nodes that they are overloaded! After a number of failed attempts to solve the problem by making small changes to our existing load balancing algorithm, it eventually became clear that we would need to go back to first principles, and design a solution to the problem from the ground up. The underlying idea behind this solution is that for the load balancing algorithm to be successful, it would need to be able to limit the number of requests entering the network *at source*, namely limiting the number of requests that could be created to what the network can effectively handle. The eventual solution involved nodes adaptively estimating how many requests they can comfortably handle, their "request quota", and then intelligently allocating this quota to the nodes that want to send it requests for data. We devised an algorithm that could allocate this quota in such a way that if a node wasn't using all of its quota, that this spare quota could then be reallocated to other nodes that are more likely to use it. This allows the total number of requests to remain under-quota, but without being so-far under-quota that the nodes would be under-utilized. A simple version of this algorithm was tested two weeks ago, and managed to reduce the number of rejected requests from over 95% to less than 5%. We have now implemented a more sophisticated version of the algorithm and are in the process of testing and tweaking it, but early results are very positive. We believe that this "rate limiting" scheme might be so effective as to have applications well beyond Freenet, and my intention is to write a paper on the subject just as soon as we have gained sufficient experience of how it operates in the real world. I think this demonstrates that while the research nature of this project can sometimes cause frustration when things don't quite go to plan, it also allows us to develop and explore cutting-edge ideas that have applications well beyond the specific goals of the Freenet project. At the very core of the project's ability to maintain this momentum, even when things aren't looking very rosy from the users' perspective, is Matthew Toseland - the project's grossly underpaid and extremely hardworking and talented full-time developer. Matthew asks for only £850 per month, which is way below what he could earn as a commercial software developer, and his full-time development efforts, in addition to their direct effect, also serve as a catalyst for the contributions of other volunteers. Unfortunately, due to the recent poor performance, which we are now hopefully climbing out of, we have been unable to do a formal release of the Freenet software. We are now optimistic that, if rate limiting continues to be as promising as it appears to be, we will be in a position to release Freenet 0.6, the first major release in well over a year. The problem is that this is still 6 weeks away at an absolute minimum, and as things stand right now, and despite the generous donations of many Freenet users, the project is almost out of funds with which to employ Matthew. For this reason I am appealing to supporters of the project to, once again, dig deep and if you can, make a contribution to the project in the form of a Paypal donation, a Paypal subscription, or through E-Gold if Paypal is not your cup of tea. You can make a donation through the donations page on our website at: http://freenetproject.org/index.php?page=donations If, for whatever reason, you would like to make a donation through other means, please contact me directly at [email protected] Many thanks, Ian Clarke, Coordinator, The Freenet Project.