On Wed, Dec 13, 2006 at 05:13:55PM +0000, Michael Rogers wrote: > toad wrote: > > Inserts are significantly slower than requests because: > > 1) An insert will touch a lot more nodes on average than a request. > > 2) This means the likelihood of getting a RejectedOverload is much > > higher. > > 3) It also means it takes much longer. > > 4) The RTT on a request is from sending it to finishing receiving data; > > the RTT on an insert is from sending it to receiving the all downstream > > transfers complete notification. > > To me, this suggests that we should have a single throttle without RTT > measurement. There's no point throttling inserts when the overall load > on the network is low.
At the moment we have a single window and four different RTT measurements. The reason for having RTT is to be close to TCP's behaviour, but it is probably not a good model. AIMD is designed to determine the window size, that is, the number of requests that should be active at a given time, hence we have to either: a) Monitor the RTT and divide it by the window to decide how often to send requests (and/)OR b) Count how many requests are in flight and not allow more than the window. The problem with the latter is that right now the window is not often above 2 (this indicates a problem in the throttling, of course), so it wouldn't be very precise. Only allowing INT(window)+1 requests in flight at once would however prevent some short-term problems, so it might be useful, but I don't see it substituting for (a). Please could you simulate AIMD throttling without an RTT versus AIMD throttling with an RTT? As far as I can see AIMD is designed to determine window size, and without an RTT we don't have a window size. > > Cheers, > Michael -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 189 bytes Desc: Digital signature URL: <https://emu.freenetproject.org/pipermail/tech/attachments/20061213/42e66eb6/attachment.pgp>