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>

Reply via email to