A discussion on #freenet leads me to suggesting this change to QueryReject behavior:
1. A sends B a request 2. B is overloaded, sends A a QueryReject, with an additional field indicating to wait until told otherwise. 3. A now assumes that B is overloaded, and any further requests to it will QueryReject, so it behaves as if they have without actually sending the message. 4. This state persists until B sends A a "go-ahead" message, or a timeout (1 hour?) expires, in case B malfunctions and forgot who it owes a message. The goal here is to reduce the message traffic to overloaded nodes without seriously changing network behavior. The node needs a method for deciding when to send QRs and when to send go-aheads. The node might keep a queue of nodes which have been sent QRs, and a list of nodes which have been sent goaheads, where it would pop a node off the QR list and send a goahead when it is not overloaded (at some reasonable rate), and send QRs to all requests from nodes in neither list, until the QR list is empty; then when the node becomes overloaded again, it would empty the goahead list, which would cause all requests to be QRed again. Comments? -- Benjamin Coates _______________________________________________ Devl mailing list [EMAIL PROTECTED] http://dodo.freenetproject.org/cgi-bin/mailman/listinfo/devl
