-
Type: Sub-task
-
Resolution: Fixed
-
Priority: Unknown
-
Affects Version/s: None
-
Component/s: None
Use Case
As a... Driver engineer
I want... to add logic to track the timing of connection checkout and server selection
So that... the driver can be CSOT spec compliant in those areas
User Impact
- None, feature is gated behind internal option
Dependencies
- Remainder of CSOT implementation depends on this
Unknowns
- questions that need to be answered to determine implementation
Acceptance Criteria
Implementation Requirements
- create a Timeout at operation construction time if CSOT is enabled to create a 1:1 relationship between a Timeout and a non-cursor operation
- Implement correct CSOT logic for server selection and connection checkout
- Note - specifically not adding logic to cancel connection creation (see DRIVERS-2347 for more details)
Testing Requirements
- Implement Server Selection prose tests
- Spec unit tests:
- Operations should ignore waitQueueTimeoutMS if timeoutMS is also set.
- If timeoutMS is set for an operation, the remaining timeoutMS value should apply to connection checkout after a server has been selected.
- If timeoutMS is not set for an operation, waitQueueTimeoutMS should apply to connection checkout after a server has been selected.
Documentation Requirements
- None, defer to release of CSOT
Follow Up Requirements
- Note that this neither subtask nor its parent ticket will address the paragraphs in the Command execution section of the CSOT spec that pertain to writing and reading from sockets. These will be addressed in
NODE-5682