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.
This PR adds #3829 again with a couple improvements:
Instead of calling
pool.state()
every time a connection is acquired, which we believe caused the incident that led to the revert, this uses r2d2's event handling to keep track of the state outside of r2d2's mutex. The overhead of keeping track of the state should be minimal.Since this added r2d2 event handling anyway, this also adds a new metric to track how many times obtaining a connection timed out, which will be yet another datapoint operators will have at their disposal to debug incidents.
This PR is best reviewed commit-by-commit.