[
https://issues.apache.org/jira/browse/GEODE-6596?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jacob S. Barrett updated GEODE-6596:
------------------------------------
Description:
Idle connection timeouts must scan the {{allConnections}} set since the
secondary may hold idle connections that won't be in the
{{availableConnections}}. This requires scanning the entire set of connections
with an exclusive lock, which can be really expensive for large connection
pools. If there were no secondary pools we could scan the
{{availableConnections}} deque in reverse order stopping at the first idle
connection not exceeding the timeout limit. This scan would be lock free and
would not touch every connection. The {{availableConnections}} deque is used as
a LIFO queue so connections at the front are hot and connection at the end are
cold.
was:Idle connection timeouts must scan the allConnections set since the
secondary may hold idle connections that won't be in the availableConnections.
This requires scanning the entire set of connections with an exclusive lock,
which can be really expensive for large connection pools. If there were no
secondary pools we could scan the availableConnections deque in reverse order
stopping at the first idle connection not exceeding the timeout limit. This
scan would be lock free and would not touch every connection. The
availableConnections deque is used as a LIFO queue so connections at the front
are hot and connection at the end are cold.
> Simplify idle connection expiration
> -----------------------------------
>
> Key: GEODE-6596
> URL: https://issues.apache.org/jira/browse/GEODE-6596
> Project: Geode
> Issue Type: Sub-task
> Components: client/server
> Reporter: Jacob S. Barrett
> Priority: Major
>
> Idle connection timeouts must scan the {{allConnections}} set since the
> secondary may hold idle connections that won't be in the
> {{availableConnections}}. This requires scanning the entire set of
> connections with an exclusive lock, which can be really expensive for large
> connection pools. If there were no secondary pools we could scan the
> {{availableConnections}} deque in reverse order stopping at the first idle
> connection not exceeding the timeout limit. This scan would be lock free and
> would not touch every connection. The {{availableConnections}} deque is used
> as a LIFO queue so connections at the front are hot and connection at the end
> are cold.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)