-
Type:
Task
-
Resolution: Unresolved
-
Priority:
Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
Catalog and Routing
-
CAR Team 2025-10-27, CAR Team 2025-11-10, CAR Team 2025-11-24, CAR Team 2025-12-08
-
🟩 Routing and Topology
-
None
-
None
-
None
-
None
-
None
-
None
The kStrictlyNotIdempotent retry policy was introduced by SERVER-109445.
This policy was specifically created for retrying when the response includes a retryable label (RetryableWriteError or RetryableError), which are always safe to retry, even for a getMore command.
The kStrictlyNotIdempotent is used by the AsyncResultsMerger, which internally schedules getMore commands and retries them only in case of receiving one of the mentioned retryable labels.
On the other side, the kNotIdempotent retries the operation only in case of a NotPrimaryError.
The goal of this ticket is to:
- Understand if all the responses failed with a NotPrimaryError can attach a retryable label.
- If so, add a retryable label to every NotPrimaryError failure.
- Remove the kStrictlyNotIdempotent retry policy in detriment of the kNotIdempotent policy.
- Make sure the kNotIdempotent policy retries on retryable labels.
We may also consider addressing SERVER-113471 as part of this task.
- is related to
-
SERVER-108482 kNotIdempotent retry criteria may be too permissive
-
- Open
-
-
SERVER-109445 Update AsyncResultsMerger to use Shard::RetryStrategy
-
- Closed
-
-
SERVER-113471 Consider renaming retry policies to convey their meaning better
-
- Needs Scheduling
-