couchdb-replication mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jens Alfke <j...@couchbase.com>
Subject Re: _bulk_get protocol extension
Date Fri, 24 Jan 2014 19:35:46 GMT

On Jan 24, 2014, at 9:35 AM, Yaron Goland <yarong@microsoft.com> wrote:

> In the HTTP WG more than a decade ago issues like this came up under the name 'boxcar'ing'.
But with the introduction of pipelining the performance benefits of boxcar'ing for idempotent
requests went away. 

It's not that simple. Pipelining has problems, as described by Ilya Grigorik in his excellent
new book "High Performance Browser Networking":

>> In practice, due to lack of multiplexing, HTTP pipelining creates many subtle and
undocumented implications for HTTP servers, intermediaries, and clients: […]
>> Due to these and similar complications, and lack of guidance in the HTTP 1.1 standard
for these cases, HTTP pipelining adoption has remained very limited despite its many benefits.
Today, some browsers support pipelining, usually as an advanced configuration option, but
most have it disabled.

— http://chimera.labs.oreilly.com/books/1230000000545/ch11.html#HTTP_PIPELINING

In my case, pipelining is off by default in Apple's HTTP client framework, and I've been loath
to turn it on for reasons like those Grigorik describes. (Also, IIRC I tried turning it on
a year or so ago and ran some replication performance tests, and didn't see noticeable improvements.)

Coalescing everything into one request also removes the overhead of generating and parsing
each HTTP request/response, on both client and server sides.

—Jens
Mime
View raw message