-
Type: Improvement
-
Resolution: Fixed
-
Priority: Major - P3
-
Affects Version/s: None
-
Component/s: Storage
-
Minor Change
-
Repl 2018-02-12, Repl 2018-02-26, Repl 2018-03-12, Repl 2018-03-26, Repl 2018-04-09
-
0
There is a system state in MongoDB called replication rollback, where a node in a replica set needs to be able to reset it's state to an earlier point in time.
That is currently handled by undoing operations via the oplog, but that's technically difficult. We are working on adding a mechanism that means the oplog will only need to be applied forwards instead. In order to use that mechanism for replication rollback MongoDB will need a method for resetting a WiredTiger database to an earlier point in time, and then running recovery to return the state to the desired point in time.
The goal of this ticket will be adding a function to the storage engine interface, which shuts down a storage engine, then re-opens and recovers the state as it would be after a fresh restart. In the case of WiredTiger this will be with all collections having data at a certain point in time, and the oplog containing information that at least covers the replica wide durable point.
After this Storage Engine restart method has been called it is expected that the oplog will be replayed to re-create collection data that wasn't durable before the restart.
- depends on
-
SERVER-33081 Reset `KeysCollectionManager` during rollback properly
- Closed
-
SERVER-33093 catalog::openCatalog must rebuild all indexes for a collection in one pass
- Closed
-
SERVER-33126 Replication commit point can include uncommitted storage transactions
- Closed
-
WT-3906 Respect stable_timestamp in WT_CONNECTION::close
- Closed
-
SERVER-32594 Add mechanism to delete and recreate the "catalog".
- Closed
-
SERVER-33159 RTT storage recovery from unclean shutdown expects all WT tables to exist
- Closed
-
SERVER-30081 Add a WiredTigerKVEngine "recovery" method that reconciles the _mdb_catalog and WT tables.
- Closed
-
SERVER-32144 Remove test coverage for replication protocol version 0
- Closed
-
SERVER-33743 Use all_committed to set lastApplied on primary nodes
- Closed
-
SERVER-29211 Change to explicitly journal a subset of content in WiredTiger
- Closed
-
WT-3387 Add support for a stable timestamp
- Closed
-
WT-3388 Online rollbackToStableTimestamp
- Closed
- is depended on by
-
SERVER-32844 Turn on recoverable rollback Javascript tests
- Closed
-
SERVER-34042 Move prepare_transaction.js to the transactions suite
- Closed
- is duplicated by
-
SERVER-30349 Atomically turn on recovery to a timestamp in storage and replication.
- Closed
- is related to
-
SERVER-33161 Postpone WiredTigerKVEngine table drops until the _mdb_catalog change is checkpointed
- Closed
-
SERVER-34070 Add flag to perform replication recovery as a standalone
- Closed
-
SERVER-34075 powercycle_replication* must run replication recovery to observe canary documents
- Closed
- related to
-
SERVER-33812 First initial sync oplog read batch fetched may be empty; do not treat as an error.
- Closed
-
SERVER-32206 Catalog change to declare an index as multikey must be timestamped.
- Closed
-
SERVER-34606 Test (and possibly fix) behavior around majority commit point and oplog truncation
- Closed
-
WT-3322 Add upgrade/downgrade support for altered log settings
- Closed