[freenet-dev] Why Freenet is so SLOW! Proposal for new load management
Matthew Toseland
toad at amphibian.dyndns.org
Sat Dec 1 16:18:22 UTC 2007
On Friday 30 November 2007 23:35, Michael Rogers wrote:
> Matthew Toseland wrote:
> > TCP/IP is end-to-end. It loses packets on each hop.
>
> There's really no comparison between Freenet requests and IP packets.
> Packets don't backtrack. Routers don't set local timeouts for every
> packet. There's no flow control or retransmission between routers, only
> between endpoints. TCP is *not* a good model for what happens end-to-end
> across Freenet. (In fact the term end-to-end doesn't even make sense - a
> single insert can reach multiple endpoints!)
Agreed, it's not a good analogy. But it's the basis of the current
backoff-plus-AIMD load management system. Which is why we need to get rid of
it.
>
> *However* TCP is a good model for what happens between neighbouring
> nodes. In fact it's such a good model that I think we should copy it.
We do. The link layer uses a protocol which behaves more or less the same as
TCP with regard to congestion control.
>
> > One request and one ack use the same number of bytes in immediate terms of
> > just that message, but a request will use a LOT more bytes overall.
> >
> > Therefore, IMHO it would be inappropriate to limit messages rather than
> > requests. We may need to limit messages as well, but requests are the main
> > concern.
>
> You're right, token passing isn't redundant after all. We need a
> transport layer that limits messages, and a load balancing layer that
> limits requests. They should be separate layers.
>
> > How exactly do you decide which requests to accept then?
>
> You don't decide, because there's no rejection any more. You just hand
> out tokens and try to forward whatever requests your peers in their
> infinite wisdom decide to send you.
IMHO we would still need rejection, for several reasons:
1. Reject due to loop.
2. Reject due to overload if something unexpected happens.
3. Reject due to overload as a normal part of the operation of the node
because if we just send one token to one node it will not always send a
request, so IMHO we have to send tokens to several nodes and then reject some
if we get more requests than we'd expected.
>
> Cheers,
> Michael
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://emu.freenetproject.org/pipermail/devl/attachments/20071201/9d72e59b/attachment.pgp
More information about the Devl
mailing list