-
Type: Improvement
-
Resolution: Fixed
-
Priority: Major - P3
-
Affects Version/s: None
-
Component/s: None
-
Fully Compatible
-
v5.0
-
Replication 2021-11-29, Replication 2021-12-13, Replication 2021-12-27, Replication 2022-01-10, Replication 2022-01-24
-
170
appliedThrough/minValid are for a crash recovery mechanism that allowed secondaries to apply oplog entries in parallel in back in a time when every write was journaled.
Modern MongoDB with a standard configuration (WT + stable checkpoints) have no need for these values. appliedThrough has been replaced with the stable checkpoints timestamp (recoveryTimestamp). minValid is obsoleted as we only checkpoint at a timestamp where all previous writes have been committed.
Writing to appliedThrough + minValid for each batch can have a noticeable performance cost in addition to breaking a WT contract (albeit in a benign way, it causes some maintainability problems with WT). We must(ish) choose a timestamp when writing to this document, and that timestamp is often the stable timestamp.
But for clarity, I think the values should stay and still the server should maintain existing behavior when those values exist. I believe backup/restore relies on them as well as maybe initial sync and rollback via refetch?
The complete ask:
- Cease the writes before and after every batch of secondary oplog application
- Never write to it with a timestamp. Or always? With more thoughtful consideration of the stable timestamp.
- With care. I haven't combed through the more nuanced writes to this document myself to understand any possible complications.
- causes
-
SERVER-63118 Wait for writes to become durable before killing node in startup_recovery_for_restore.js
- Closed
- is depended on by
-
WT-7712 commit and durable timestamps should be disallowed at stable timestamp
- Closed
- is duplicated by
-
SERVER-53642 Cleanup writes to appliedThrough that changed as part of Lock Free Reads
- Closed
- is related to
-
SERVER-61703 Complete TODO listed in SERVER-53642
- Closed
- related to
-
SERVER-61409 Investigate the cause of invalidated config.image_collection entries after restart
- Closed
-
SERVER-61583 Add restart test for retryable internal transactions for findAndModify
- Closed
-
SERVER-62715 Architecture Guide updates for minValid/appliedThrough writes
- Closed
-
SERVER-62745 Clear appliedThrough after startupRecoveryForRestore
- Closed
-
SERVER-60037 Enable the ordered timestamp assertion in MongoDB
- Closed
-
SERVER-69055 Update stale comments regarding minValid
- Closed
- mentioned in
-
Page Loading...