Matthew Toseland wrote:
Not the right place, and not the right solution. Will be reverted.
Well, in theory, that code would only do something when "backoff hell"
was likely and it's very frustrating to find a node stuck in "backoff
hell" that won't recover without intervention and you wonder how long
it's been that way (assuming you're not logging at MINOR and getting the
once-per-second peer status summary).
On Sun, Jun 18, 2006 at 07:02:38PM +0000, [EMAIL PROTECTED] wrote:
Author: zothar
Date: 2006-06-18 19:02:33 +0000 (Sun, 18 Jun 2006)
New Revision: 9304
Modified:
trunk/freenet/src/freenet/node/RequestSender.java
Log:
Mitigate "backoff hell" a bit by not routing to a peer if it's the only one not
backed off and we have a few backed off peers.
Modified: trunk/freenet/src/freenet/node/RequestSender.java
===================================================================
--- trunk/freenet/src/freenet/node/RequestSender.java 2006-06-18 17:35:22 UTC
(rev 9303)
+++ trunk/freenet/src/freenet/node/RequestSender.java 2006-06-18 19:02:33 UTC
(rev 9304)
@@ -113,6 +113,13 @@
return;
}
+ // Route starvation due to almost all backed off?
+ if(node.getPeerNodeStatusSize(Node.PEER_NODE_STATUS_CONNECTED) ==
1 && node.getPeerNodeStatusSize(Node.PEER_NODE_STATUS_ROUTING_BACKED_OFF) > 3) {
+ // Don't send everything to one node, that may have just come
out of backoff, hopefully preventing backoff hell (the one emerging from
backoff gets pounded back into backoff)
+ finish(ROUTE_NOT_FOUND, null);
+ return;
+ }
+
// Route it
PeerNode next;
double nextValue;
_______________________________________________
Devl mailing list
[email protected]
http://emu.freenetproject.org/cgi-bin/mailman/listinfo/devl