29 Jul 2012 22:59
[Messy Patch] XOVER Command Pipelining
Jan Andres <J <at> nAndr.es>
2012-07-29 20:59:19 GMT
2012-07-29 20:59:19 GMT
Hello, I've noticed many times that slrn can be a bit slow when opening busy groups where it needs to send many XOVER commands to the server; in my case the server isn't actually slow to reply. Rather, the issue is network latency and slrn's consuming the response to each XOVER command before sending out the next one. RFC 3977 explicitly allows command pipelining in NNTP so I was wondering if that could help speed things up. And indeed it does. I hacked up a little proof-of-concept patch and found that slrn can now open all my groups within less than a second, which is at least a 10-fold improvement. The basic idea is initially to prepare a buffer containing all the desired XOVER commands and extend the select() loop in wait_for_input() so it will asynchronously send out the buffer's contents along with the processing of the replies. The patch is just a quick hack, it has basically no error handling and it breaks a lot of things (including SSL), but it should help illustrate the basic idea. I hope I'll have some time to get it into a more usable state. Cheers, Jan diff --git a/src/art.c b/src/art.c index 513858a..f2dd345 100644 --- a/src/art.c(Continue reading)
RSS Feed