You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@trafficserver.apache.org by "Alan M. Carroll (JIRA)" <ji...@apache.org> on 2013/10/03 17:50:42 UTC

[jira] [Comment Edited] (TS-1893) Make ATS use keep-alive connections per origin address

    [ https://issues.apache.org/jira/browse/TS-1893?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13785292#comment-13785292 ] 

Alan M. Carroll edited comment on TS-1893 at 10/3/13 3:48 PM:
--------------------------------------------------------------

Based on user feedback about this issue, I have a different proposal for changing this behavior.

What is desired is the ability to configure how server sessions are matched with client transaction requests. Currently, as noted, both the IP address and FQDN must match to use a server session. This is reasonable default behavior but some clients want to match a server session based only on the IP address, even if the FQDN changes (virtual hosts), and other want to match on just the FQDN even if the IP address changes (DNS round robin).

What I propose is to create two new configuration variables to replace the current share_server_sessions.

server_session_sharing.match: off|ip|host|both
server_session_sharing.pool: global|thread

The first would enable server session sharing and, if enabled, specify the matching criteria. The default would be "both" which is the current hard wired behavior. "ip" would mean "match only on IP". "host" would mean "match only on FQDN". "off" would mean "do not match, do not share server sessions", the equivalent of the current share_server_sessions == 0.

The second variable would control how the server session pools are managed, either a single global pool (share_server_sessions == 1) or a pool per thread (share_server_sessions == 2).

These would be implemented in 4.X but the share_server_sessions would also be kept to preserver backwards compatibility. Its processing would be changed to map to the appropriate values of the new variables.

0 => off/global
1 => both/global
2 => both/thread


was (Author: amc):
Based on user feedback about this issue, I have a different proposal for changing this behavior.

What is desired is the ability to configure how server sessions are matched with client transaction requests. Currently, as noted, both the IP address and FQDN must match to use a server session. This is reasonable default behavior but some clients want to match a server session based only on the IP address, even if the FQDN changes (virtual hosts), and other want to match on just the FQDN even if the IP address changes (DNS round robin).

What I propose is to create two new configuration variables to replace the current share_server_sessions.

server_session_sharing.match: off|ip|host|both
server_session_sharing.pool: global|thread

The first would enable server session sharing and, if enabled, specify the matching criteria. The default would be "both" which is the current hard wired behavior. "ip" would mean "match only on IP". "host" would mean "match only on FQDN". "off" would mean "do not match, do not share server sessions", the equivalent of the current share_server_sessions == 0.

The second variable would control how the server session pools are managed, either a single global pool (share_server_sessions == 1) or a pool per thread (share_server_sessions == 2).

These would be implemented in 4.X but the share_server_sessions would also be kept to preserver backwards compatibility. Its processing would be changed to map to the appropriate values of the new variables.

> Make ATS use keep-alive connections per origin address
> ------------------------------------------------------
>
>                 Key: TS-1893
>                 URL: https://issues.apache.org/jira/browse/TS-1893
>             Project: Traffic Server
>          Issue Type: Improvement
>          Components: HTTP, Network, Performance
>            Reporter: Tomasz Kuzemko
>            Assignee: Alan M. Carroll
>             Fix For: 4.2.0
>
>         Attachments: TS-1893-PoC.diff
>
>
> In current implementation Traffic Server uses a two level hash for keep-alive connections: server ip -> hostname -> keep-alive session.
> The reasoning behind this was that some old http servers could not handle the request properly for different virtual hosts on the same keep-alive session. Recent web servers should all handle this situation correctly.
> The improvement would be to make a single level hash to keep just the server ip. Shared hosting configurations using ATS as a reverse-proxy could benefit the most from this improvement.



--
This message was sent by Atlassian JIRA
(v6.1#6144)