ExportXMLWordPrintableJSON

    • Type: Task
    • Resolution: Fixed
    • Priority: Major - P3
    • 9.0.0-rc1
    • Affects Version/s: None
    • Component/s: None
    • None
    • Query Execution
    • Fully Compatible
    • QE 2026-07-06, QE 2026-07-20
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      Summary

      internalQueryEnableWriteConflictBackoffWithoutTicket is set_at: [startup]. Change it to [startup, runtime] so the release-ticket write-conflict backoff behavior can be toggled without restarting the server.

      Background

      The knob gates whether the plan executor and Express executor release the ticket and resources before sleeping on a write conflict (added in SERVER-116168, plan-executor analog SERVER-65418). It is an AtomicWord read fresh on every write-conflict cycle via .load()/.loadRelaxed() in plan_executor_impl.cpp and plan_executor_express.cpp. There is no startup snapshot or derived state. The two sibling tuning knobs, internalQueryWriteConflictBackoffMaxReleaseTicketCycles and internalQueryWriteConflictRetryLimitMax, are already [startup, runtime].

      Change

      Add runtime to set_at in query_execution_knobs.idl.

      Risk

      Low. Both the release-ticket and hold-ticket paths are already reachable within a single operation: once consecutive conflicts exceed internalQueryWriteConflictBackoffMaxReleaseTicketCycles, the op falls back from release to hold-ticket mid-flight. Toggling the enable bit between cycles reaches the same paths and adds no new combination. A runtime disable path already exists by setting the cycles knob to 0, which forces hold-ticket on the first conflict; this change also allows runtime enable.

      Testing

      Extend jstests/noPassthrough/query/write_query_does_not_sleep_with_locks.js to flip the knob with setParameter mid-test and assert the backoff path switches.

            Assignee:
            Zixuan Zhuang
            Reporter:
            Zixuan Zhuang
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: