ExportXMLWordPrintableJSON

    • Type: Task
    • Resolution: Unresolved
    • Priority: Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • None
    • Storage Execution
    • Storage Execution 2026-11-23
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      Overview

      Write a design note on staging writes in the RecoveryUnit instead of writing through to WiredTiger, and on merge cursors that present storage plus staged writes as a single view. This guides the staged-write prototype tickets in this epic.

      Background

      In the proposed architecture, writes on opted-in collections are buffered in the RecoveryUnit until commit and are not written to the storage engine on the primary. A transaction must still read its own writes, including through collection and index scans, so storage reads must merge the snapshot with the staged writes and produce the same results as a write-through transaction would.

      Scope of Work

      • Staged buffer structure: per-ident ordered map keyed by KeyString/RecordId with tombstones.
      • Interaction with savepoints and statement-level rollback in multi-document transactions.
      • RecordId allocation for inserts without writing to WiredTiger.
      • Count and data-size delta tracking.
      • Cursor semantics: seek, next/prev, save/restore, bounds, prepare conflicts.
      • Inventory of every RecordStore, SortedDataInterface and Container entry point, including non-cursor ones (findRecord, dataFor, seekExact, numRecords, dup-key checks, Container get/insert). Classify each as: merge needed / buffer only / unsupported in prototype.
      • Memory limits (reuse existing transaction size limits where possible).

      Acceptance Criteria

      • Design note recorded on this ticket or committed alongside code in the project branch.
      • Inventory table complete, with open questions listed.

      Technical Notes

      • Prototype quality; not intended for commit to master.

            Assignee:
            Dan Larkin-York
            Reporter:
            Dan Larkin-York
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated: