Investigate if kNotIdempotent and kStrictlyNotIdempotent retry policies can be merged

XMLWordPrintableJSON

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

            Assignee:
            Silvia Surroca
            Reporter:
            Silvia Surroca
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated: