You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@trafficserver.apache.org by "Miles Libbey (JIRA)" <ji...@apache.org> on 2010/04/19 22:56:50 UTC

[jira] Created: (TS-316) Add a limit to the number of requests through a single KeepAlive connection

Add a limit to the number of requests through a single KeepAlive connection 
----------------------------------------------------------------------------

                 Key: TS-316
                 URL: https://issues.apache.org/jira/browse/TS-316
             Project: Traffic Server
          Issue Type: Improvement
            Reporter: Miles Libbey
            Priority: Minor


(was yahoo bug 1953368)


Original description
by Daniel Weaver  22 months ago at 2008-05-22 14:50

This is a request to support a mechanism equivalent to Apache's MaxKeepAliveRequests directive. http://httpd.apache.org/docs/1.3/mod/core.html#maxkeepaliverequests

Basically, after the specified number of requests come through, a "Connection: close" header is sent back to
the client to break the connection. This is useful because eternal Keep-Alive essentially thwarts load balancers, and
can result in very uneven traffic over time (especially when restarting a TS -- all connections are broken when it
shuts down, and then when it restarts it gets no new connections, because all the clients have Keep-Alive sessions with
the other TS's that were behind the vip).

This conversation started in bug 1950760; see it for additional context. Sherpa may experiment with inserting
"Connection: close" headers randomly in its response plugin in the meantime.

		

 
Comment 1
 by Chuck Neerdaels  22 months ago at 2008-05-22 15:11:32

If it's added to the general TS path it'll break stuff. For instance
pipelining - if a client shoots 6 requests and you do a shutdown after
they get a response for 3, they have to unwind and reissue the requests.
Yes, clients could be written to deal with this, but there's a general
assumption that if you accepted and read the request, you intend to
answer it - barring something catastrophic. 

The 1.1 spec is pretty ambiguous here. Closing connections when there's
a timeout generally flies, but inserting one midstream while under load
is going to backfire. Proxies just don't do that - even though servers
and clients can.

chuck

 
Comment 2
 by Daniel Weaver  22 months ago at 2008-05-22 15:56:14

Yeah... not a lot of commentary out there on the interaction between pipelining and connection closing. I did find this
article that emphasizes, "Servers must therefore close each half of the connection independently."

http://www.w3.org/Protocols/HTTP/Performance/Pipeline.html#After_Tuning


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.