-
Type: Improvement
-
Resolution: Fixed
-
Priority: Major - P3
-
Affects Version/s: None
-
Component/s: None
Background & Motivation
If a timeout occurs during a network operation the associated connection is closed. That is required since it is impossible to determine the status of the connection or whether it is reusable.
If an operation is executed with a context timeout, and much of the time is spent before executing the network operation there may be insufficient time remaining to complete the network operation. This can cause unnecessary connection churn.
For example, suppose the expected server RTT is 20ms. An "insert" operation is run with a 100ms timeout. There is contention in the connection pool, so 90ms is used up waiting for a connection to become available. With the remaining 10ms, the "insert" is sent, times out, and the connection is closed.
Scope TBD
- is related to
-
GODRIVER-1799 Avoiding connection storms
- Released
-
GODRIVER-2038 Use "ConnectionTimeout" for creating all new connections and background connection creation
- Closed
- related to
-
GODRIVER-1965 Pre-write context expiration should not be considered a network error
- Closed