"Edward J. Huff" <[EMAIL PROTECTED]> writes:

> ... Now I see.  I only knew about QR's in the context of node
> overload, not in their normal context, which occurs when the
> key is found in the failure table or when (I guess) the node
> can't find a route.  I've read only a small fraction of the code.
> 
> QueryRejected.java:
> 
>  * This message is sent by a node which cannot locate a piece of data.
>  * If received by a node, it should either forward it back to whichever
>  * node sent the request to it, or should send another request to find
>  * the data.
>
This paragraph is confusing and poorly worded; a better way of saying
what was intended is:

* This message is sent by a node that cannot continue the request for
* a piece of data.  If recieved by a node, it should send another
* request to find the data or (if it doesn't have anywhere else to
* request from) QueryReject itself.
 
> But, to return to the original subject..., there is an argument for
> closing connections instead of QR-ing when load is high.  If a node
> closes connections, it continues to accept requests from the
> connections it has.  I argue that really, the node had too many
> open connections to begin with, and probably it won't want to
> open the connections again very soon.  Also, when the backlog
> is cleared, the node can open connections instead of sitting
> idle until the QR back-off timers expire.
>
Why close connections?  If a node wants to request data from you,
it'll just open a new connection.  Backing off (or server-enforced
rate limiting) is the only way to cut down the number of incoming
requests (in the short term).  Keeping connections open costs almost
nothing.
 
> Right now, my node has connections only to nodes which do
> back-off.  It has 148 connections to 82 different nodes,
> (counting some old builds which got blocked at the firewall
> within 5 minutes of connecting) but apparently all of them
> are backed-off because it is getting only about 300 queries
> per hour.  It is completely idle, with no connections 
> transferring.  If it had closed connections instead of
> QR-ing, it would be able to re-open the connections now
> and get more work.
>
> -- Ed Huff

You seem to think that closing connections will decrease the number of
incoming requests.  It won't.  It's not a bad idea to make it work
that way, but at the moment, it doesn't.  Nodes that want to route to
you will just keep trying to re-open the connection (which is what the
ConnectionOpener is for).

Thelema
-- 
E-mail: [EMAIL PROTECTED]                            Raabu and Piisu
GPG 1024D/36352AAB fpr:756D F615 B4F3 BFFC 02C7  84B7 D8D7 6ECE 3635 2AAB
_______________________________________________
Devl mailing list
[EMAIL PROTECTED]
http://dodo.freenetproject.org/cgi-bin/mailman/listinfo/devl

Reply via email to