Added an option to specify max idle time for a pooled socket. #185
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
When memcached nodes in a large memcached cluster are intentionally restarted, like a couple every day, connections to those nodes become stale. This change is to add an option to discard pooled sockets if they have not been picked up from the pool in the recent time - in our case this would be about a minute. Those "old" sockets are very likely to become stale (since they are rarely picked up from the _freeItems stack - that only happens during occasional spikes in server load).
Added an option to specify max idle time for a pooled socket.
Default value is zero, which turns this feature off.
Enforcement is done at the time of picking the socket out of the pool, not by timer.