On Tue, Dec 02, 2003 at 07:34:32PM +0000, Toad wrote:
Okay, so the answer to the original question: * Implement selective accept/unobtanium. When moderately overloaded, accept only those queries with the best NGRouting estimates. QR the rest. Rather than accepting the first ones to come in. This is based on probabilistic accept and NGR. * Abolish termination of requests on receipt of DataNotFound. Rewrite estimators to take this into account, and make any obvious corrections necessary in other areas. DNF now means rejected the query for a reason related to the key. Send DNF when we selectively reject above, as well as the usual ways. This has the potential to cause a load explosion; this will be managed partly by the above. * Implement the other half of ian's load balancing idea. However, we want to figure out a way to do this without sacrificing unobtanium. One possibility: queue requests to send briefly, as we would queue inbound requests, and then send the best ones (to comply with the node's rate limit), and make the rest move on to their next best choice.
Assuming that routing estimation is virtually free (and this is
supported by empirical evidence on iakin's ubernode), we may not even
need the last item. If our intention is to accept the fact that freenet
will always be overloaded as a given, we can simply have the nodes
choose which queries to accept on the basis of their routing estimates.
If they only accept 2%, who cares, it's probably the right 2%, and when
the node retries on another node, it will be accepted when it reaches
the right node. It would not be an EXPONENTIAL load explosion - most
nodes we route to (if our routing is broken) would reject outright, rather than routing to various nodes and then failing.
I'm certain that I don't understand what you are saying here. But, given Toast's idea for implementing unobtanium, would you still say that we may not need Ian's backoff scheme?
-Martin
_______________________________________________ Devl mailing list [EMAIL PROTECTED] http://dodo.freenetproject.org/cgi-bin/mailman/listinfo/devl