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
_______________________________________________
Devl mailing list
[email protected]
http://emu.freenetproject.org/cgi-bin/mailman/listinfo/devl