DRIVERS-3427 Phase 1 rollout: configurable retries, retargeting knob#1917
DRIVERS-3427 Phase 1 rollout: configurable retries, retargeting knob#1917
Conversation
… retry metadata - Change MAX_RETRIES default from 5 to 2; expose as configurable maxAdaptiveRetries option - Add enableOverloadRetargeting option (default: false) to gate server deprioritization - Add "retry": N field requirement for outgoing command bodies on retry attempts - Renumber overload retry policy rules accordingly Co-Authored-By: Claude Code <[email protected]>
Updated the default value of MAX_RETRIES to 2 and clarified its exposure as a configurable option.
Co-authored-by: Jib <[email protected]>
There was a problem hiding this comment.
Pull request overview
Updates the Client Backpressure specification to support a Phase 1 rollout of DRIVERS-3427 by tuning overload retry behavior and introducing a new gating knob for overload retargeting during server selection.
Changes:
- Lowers
MAX_RETRIESdefault from 5 to 2 and specifies it must be configurable via a driver option. - Adds
enableOverloadRetargeting(defaultfalse) to gate adding previously-used servers to the deprioritized list. - Updates the pseudocode constant value for
MAX_RETRIESto 2.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| deprioritized server addresses for [server selection](../server-selection/server-selection.md). Drivers MUST expose | ||
| this as a configurable boolean option named `enableOverloadRetargeting` defaulting to `false`. |
There was a problem hiding this comment.
Rule 4 now gates adding the previously-used server to the deprioritized list behind enableOverloadRetargeting, but the pseudocode later in this document still unconditionally appends the server address to deprioritized_servers. Please update the pseudocode/algorithm description to match the new conditional behavior so the spec is internally consistent.
| deprioritized server addresses for [server selection](../server-selection/server-selection.md). Drivers MUST expose | |
| this as a configurable boolean option named `enableOverloadRetargeting` defaulting to `false`. | |
| deprioritized server addresses for [server selection](../server-selection/server-selection.md). If | |
| `enableOverloadRetargeting` is disabled, the client MUST NOT add the previously used server's address to this list. | |
| Drivers MUST expose this as a configurable boolean option named `enableOverloadRetargeting` defaulting to `false`. |
| 2. We have not reached `MAX_RETRIES`. | ||
| - The value of `MAX_RETRIES` is 5 and non-configurable. | ||
| - The default value of `MAX_RETRIES` is 2. Drivers MUST expose this as a configurable option `maxRetries`. | ||
| - This intentionally changes the behavior of CSOT which otherwise would retry an unlimited number of times within |
There was a problem hiding this comment.
The PR description mentions a new maxAdaptiveRetries driver option, but this spec text requires drivers to expose MAX_RETRIES as maxRetries. Please align the option name between the PR description and the spec (and ensure the chosen name is used consistently throughout the spec).
Summary
Updates to the client backpressure spec for DRIVERS-3427 phase 1 rollout:
MAX_RETRIESdefault from 5 to 2 and make it configurable via a newmaxAdaptiveRetriesdriver optionenableOverloadRetargeting: Add configurable boolean option (default:false) to gate adding previously-used servers to the deprioritized list during server selectionTest plan
Generated with Claude Code