Skip to content

DRIVERS-3427 Phase 1 rollout: configurable retries, retargeting knob#1917

Open
Jibola wants to merge 5 commits intomasterfrom
DRIVERS-3427
Open

DRIVERS-3427 Phase 1 rollout: configurable retries, retargeting knob#1917
Jibola wants to merge 5 commits intomasterfrom
DRIVERS-3427

Conversation

@Jibola
Copy link
Copy Markdown
Contributor

@Jibola Jibola commented Mar 24, 2026

Summary

Updates to the client backpressure spec for DRIVERS-3427 phase 1 rollout:

  • Change MAX_RETRIES default from 5 to 2 and make it configurable via a new maxAdaptiveRetries driver option
  • enableOverloadRetargeting: Add configurable boolean option (default: false) to gate adding previously-used servers to the deprioritized list during server selection
  • Renumber overload retry policy rules to accommodate the new step

Test plan

Generated with Claude Code

… 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]>
Jibola added 3 commits March 24, 2026 16:21
Updated the default value of MAX_RETRIES to 2 and clarified its exposure as a configurable option.
@Jibola Jibola changed the title DRIVERS-3427 Phase 1 rollout: configurable retries, retargeting knob, retry metadata DRIVERS-3427 Phase 1 rollout: configurable retries, retargeting knob Mar 26, 2026
@Jibola Jibola marked this pull request as ready for review March 26, 2026 14:49
@Jibola Jibola requested a review from a team as a code owner March 26, 2026 14:49
@Jibola Jibola requested review from Copilot and jyemin and removed request for a team March 26, 2026 14:49
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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_RETRIES default from 5 to 2 and specifies it must be configurable via a driver option.
  • Adds enableOverloadRetargeting (default false) to gate adding previously-used servers to the deprioritized list.
  • Updates the pseudocode constant value for MAX_RETRIES to 2.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +147 to +148
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`.
Copy link

Copilot AI Mar 26, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Suggested change
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`.

Copilot uses AI. Check for mistakes.
Comment on lines 124 to 126
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
Copy link

Copilot AI Mar 26, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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).

Copilot uses AI. Check for mistakes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants