[Mongrel] HTTP Pipelining

Brian McCallister brianm at apache.org
Mon Aug 7 15:19:21 EDT 2006

I am trying to understand why Mongrel so forcefully disables http  
pipelining. The docs say because the spec is unclear, and it hurts  
performance. These reasons smell... wrong. The HTTP spec is pretty  
clear, and, er, I cannot find anywhere else that claims there is a  
performance drawback, and lots of studies (and personal benchmarks  
across years of writing webapps) showing how much it helps.

The only common case I can think of for getting a possible  
performance boost from forcing a connection close is if you with  
certainty that there are no followup resource requests to the same  
domain, and the cost of maintaining connection state in memory is too  
high for the app server. This holds true for folks like Yahoo! or  
whatnot who use a CDN for resources (and use pipelining on the CDN  
connections) and separate app servers for the dynamic page elements,  
but... it seems to be a strange assumption for a web server to force  
on users.

Anyway, trying to understand why it works this way. Anyone know?


More information about the Mongrel-users mailing list