"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
