ExportXMLWordPrintableJSON

    • Type: Task
    • Resolution: Fixed
    • Priority: Major - P3
    • 9.1.0-rc0, 9.1.0-rc1024
    • Affects Version/s: None
    • Component/s: None
    • None
    • Storage Execution
    • Fully Compatible
    • Storage Execution 2026-09-14, Storage Execution 2026-09-28, Storage Execution 2026-10-12, Storage Execution 2026-10-26, Repl 2026-08-17, Repl 2026-08-31
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      We should produce a TLA+ spec of new pipelined oplog application advancement protocol, and model-check the core invariant:

      lastApplied = T implies every op with optime <= T is applied with commit timestamp <= T
      

      The model should cover:

      • dispatcher partitioning of a batch into per-worker slices + one in-flight queue entry with a shared counters in each batch
      • workers applying slices independently and decrementing the counter
      • the advancer thread popping strictly in FIFO order, stopping at the first nonzero counter, as the sole publisher of lastApplied
      • the drain + inline path: drain-to-empty, apply on the dispatcher, publish via a synthetic completed batch
      • the wakeup protocol (worker-completes and dispatcher-enqueues notifications, plus the periodic backstop), checking we can't lose a publication

      We are intentionally omitting transaction handling and multikey flush ordering.

      The completed model should be merged into the src/mongo/tla_plus/Replication path. This model should not reference disagg in any capacity, so this should be OK.

            Assignee:
            Ali Mir
            Reporter:
            Ali Mir
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: