On Jan 24, 2008, at 2:56 PM, Matthew Toseland wrote: > That is certainly possible... > > What's the fix? Take out the temporal averaging? Or only apply it if > the > number of peers is over a certain number? > > I don't like dropping the mechanism completely, historically ping > time has > proven to be a good general load indicator (for example it tends to > go way > high if there is a major CPU problem, because the threads involved are > starved of CPU and therefore get longer ping times).
But isn't that *still* the case. If it is a problem with our node in that respect, all our ping times will be way-high, and using the per- node ping time is equivalent. Certainly if a link ping time is too high, it indicates a problem between (and including) the two nodes on that link. If the problem is with the remote node, surely we only want it to negatively effect that node's link (rejects from them, backoff from timeouts towards them). Your argument is that it may help if the problem is with us (local node). In practice, if 'we' are the cpu/pingtime problem our peers will backoff from us. That only leaves the theoretical case of a malicious (or errant) node sending requests which has a low ping time, but that all our peers are high ping time. I'm not suggesting scrapping the stat, I think the proper fix (at least for the time being) is making the ping time rejection per-node (as committed in r17235)... there is another part to this deadlock I'm not understanding, though. It seems like the backed off status of the other peers should eventually clear and be included in the average (although, the ping average would slowly dropping from 100x the other values). Yes the remote side is backed off too (from all the rejections, and would be for some time...), but it should eventually clear, right? On Jan 24, 2008, at 4:24 PM, Matthew Toseland wrote: > On Thursday 24 January 2008 21:51, Robert Hailey wrote: >> >> On Jan 24, 2008, at 3:14 PM, Matthew Toseland wrote: >> >>> The ping time limits (3s max) are lower than the timeout >>> for Accepted, admittedly (5s). >> >> Wait... if the limit is 3s, then how could my node report 12s/16s? > > Above 3s, we reject all requests. Where is that? I see the MAX_PING_TIME, where if the average-median- ping time is greater than 1.5 seconds we reject all requests from all peers, but nothing per-node. -- Robert Hailey -------------- next part -------------- An HTML attachment was scrubbed... URL: <https://emu.freenetproject.org/pipermail/devl/attachments/20080124/ce066393/attachment.html>
