On 6/18/06, David Sowder (Zothar) <[EMAIL PROTECTED]> wrote:
Florent Daignière (NextGen$) wrote: > * [EMAIL PROTECTED] <[EMAIL PROTECTED]> [2006-06-18 19:02:38]: > > >> 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. >> >> > > That's what we call alchemy, isn't it ? :) > > Well, I do see the point of not sending our requests when we have only > one online peer (even if there is plausible deniability) but why the > "backoff throwsold" ? to allow nodes with less than 4 peers to be usable > ? > > I'm not sure I agree to the concept, maybe I'm missing the point though, > may you explain ? :) > When I got back to my node after being away from it for 24 hours Saturday night, it was in what I call "backoff hell". I've seen "backoff hell" at least one other time. It's when all of your connected peers are backed off and every time one of them comes out of backoff, it goes right back into back off very quickly. I assume this is because my node is eager to send that node anything it has, no matter how misrouted it is. I don't recall from last time, but I must admit that this time, the reason was usually timeouts rather than overloads. You're right, the backoff threshold is so that nodes with fewer than 4 peers don't have this restriction.I agree that this is alchemy, but I figure it'll give a node more of a fighting chance of recovering from "backoff hell" and since that's the only time it'd apply, the impact otherwise should be nil. Perhaps some of the SoC work this summer will make such alchemy unneeded. However, just because it's alchemy doesn't mean it can't be useful. >> 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
But it was decided long ago that the time of alchemy was over. _______________________________________________ Devl mailing list [email protected] http://emu.freenetproject.org/cgi-bin/mailman/listinfo/devl
