24 Jul 2012 17:01
HTTP Pipelining Contributions
George Rizkalla <grizkalla <at> rim.com>
2012-07-24 15:01:26 GMT
2012-07-24 15:01:26 GMT
Hi all, We are currently looking at contributing to libcurl's pipelining implementation, and we were hoping to get your feedback on some areas we'd like to help with. Joe Mason will be contributing the bulk of the code changes (after he wraps up the authentication changes he has been discussing on this list). In the interim, I was hoping to run some of our design ideas by you. The proposed algorithm involves balancing HTTP requests over multiple TCP sockets, while avoiding use of HTTP pipelining in instances where we believe errors are likely to occur, or where it is likely that there would be a performance hit if pipelining is used. Essentially, there are three areas we wish to address: 1. Controlling the maximum number of sockets in use 2. Controlling maximum pipeline length, and protocol behaviour when the limit is reached 3. Providing the ability to blacklist sites or proxies that are known to not support pipelining 1. MAX SOCKETS CHANGES While CURLMOPT_MAXCONNECTS imposes a limit on the number of sockets persisted, it does not regulate the maximum number of sockets that are in use at a given point in time. It is proposed that CURLMOPT_MAXCONNECTS be aliased/renamed CURLMOPT_MAXCONNECTS_SOFT, and that a new option, CURLMOPT_MAXCONNECTS_HARD would be introduced. The latter option would regulate the maximum number of open sockets at any given point in time.(Continue reading)
RSS Feed