After chatting with James Peach and Ming Zym, both of whom I utterly confused, I see it a bit more clearly.
The root is how server sessions are shared, and what constitutes a valid session for a specific client transaction in a session. The current behavior is to match both the fully qualified domain name and the IP address. My client wants to be able to share based on just the FQDN, even if the IP address changes. Ming wants to be able to share on just the IP address, even if the FQDN changes. This seems quite a reasonable configuration option. However, we have some backwards compatibility problems. If I were starting from nothing, I would have two options: server_session_sharing.match: off|ip|hostname|both server_session_sharing.pool: global|thread The first would set how server sessions are checked against the client transaction. The second would control whether the sessions were shared in a global pool (share_server_sessions == 1) or per thread (share_server_sessions == 2). I think this could be implemented in the 4.X series, as long as we kept the current share_server_sessions value with the current semantics. Only those who wanted the new functionality would use the new config values.