-
Type: Task
-
Resolution: Fixed
-
Priority: Major - P3
-
Affects Version/s: None
-
Component/s: Replication
-
Fully Compatible
-
Repl 2017-12-04, Repl 2017-12-18, Repl 2018-01-01, Repl 2018-02-12, Repl 2018-02-26
We want to add a free function that gets called at the end of rollback and notifies all subsystems that rely on OpObservers to maintain their state that they will need to rebuild that state from the data on disk. This includes (but may not be limited to):
- Clear in-memory transaction table
- Check for rollback of the shardIdentity document
- Invalidate the role graph
- Invalidate the views catalog.
Original description:
After a successful rollback to a checkpoint, the in-memory transaction table needs to be purged to force it to refetch entries from the config.transactions collection, to ensure correctness. To do so, get the SessionCatalog decoration and call resetSessions() on it (names may change). E.g.:
SessionCatalog::get(opCtx)->resetSessions();
This is already implemented for the rollback by refetching algorithm.
- depends on
-
SERVER-29895 Roll Back to Checkpoint: Make RollbackImpl synchronous
- Closed
- is depended on by
-
SERVER-32982 Remove rolled back index builds after rollback to a checkpoint
- Closed
- related to
-
SERVER-29531 Handle Rollbacks in SessionTransactionTable
- Closed