-
Type:
Task
-
Resolution: Unresolved
-
Priority:
Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
None
-
Storage Execution
-
None
-
None
-
None
-
None
-
None
-
None
-
None
Overview
Consolidate the prototype findings into a high-confidence delivery plan and technical architecture for decoupling conflict detection from the storage engine.
Scope of Work
- Update the architecture document with findings from the prototype tickets in this epic.
- Finalize the prototype API headers (conflict detector, staged writes / merge cursors, primary oplog application) as the starting point for follow-on production work.
- Ticket breakdowns and estimates for the follow-on milestones, including integration order and risks.
- Summarize candidate workloads and tentative performance goals.
Acceptance Criteria
- Updated architecture document and delivery plan, with links recorded on this ticket.
Technical Notes
- Prototype quality; not intended for commit to master.
Carry-Forward Items
- Unreplicated writes to replicated collections on a primary, and code that relies on eager write conflicts as locks (e.g. resharding); decide between "conflict-only" detector keys and rewriting each site (design note section 2.3.1, open question 13).
- Prepare / two-phase commit with staged writes (open question 1).
- Deny-list drift (open question 12).
- Replication visibility guarantees for production (open question 10).
- Sequenced version log option for sharing data with oplog operations (appendix A.3).
- Design reference: src/mongo/db/txns/staged_writes_design.md (PR #66680).
- depends on
-
SERVER-138761 Prototype StagedWriteBuffer and staging hooks in the WiredTiger write helpers
-
- Open
-
-
SERVER-138767 Prototype primary oplog application with write acknowledgment and read timestamp changes
-
- Open
-
-
SERVER-138771 Identify candidate workloads and tentative performance goals for conflict detection
-
- Open
-
-
SERVER-138762 Remove apply-at-commit so only the oplog entry commits on the primary
-
- Backlog
-
-
SERVER-138764 Validate read-your-writes across RecordStore, SortedDataInterface and Container with staged writes
-
- Backlog
-
-
SERVER-138765 Integrate ConflictDetector into the staged-write commit path
-
- Backlog
-
-
SERVER-138766 Verify unique index constraint enforcement with staged writes
-
- Backlog
-
-
SERVER-138768 Prototype startup recovery and failover with staged writes and primary application
-
- Backlog
-
-
SERVER-138769 Analyze attached vs. disaggregated storage differences for conflict detection write path
-
- Backlog
-
-
SERVER-138760 Design note for RecoveryUnit staged writes and merge cursors
-
- In Progress
-
-
SERVER-138763 Prototype merged WiredTiger table cursor for staged writes
-
- In Progress
-
-
SERVER-138757 ConflictDetector API and key model
-
- Closed
-
-
SERVER-138758 Prototype exact and lossy ConflictDetector implementations with tests
-
- Closed
-