When the RRFaM behavior is enabled:
- A primary executing the delete can add a remove preImage to the SessionTxnRecord within the same WUOW.
- A secondary applying the delete can also add the preImage to the SessionTxnRecord within the same WUOW.
- Right now the deleteObjects return value does not provide the preImage. This ticket should expose that API.
- However the config.transactions.update predicate must include the clause: `{txnNum: {$lt: <updated txnNum>`}}.
- Remove noop oplog entry writes for FaM removes
- Collections that always store preImages must continue to write pre-image noops for findAndModify's that remove a document.
- These findAndModify's should not write the preImage to a config.transactions document
- The current OpObserver::onDelete API cannot distinguish between an engaged deletedDoc due to a findAndModify versus the collection configuration (without attempting to read the collection catalog using the input collection UUID). One solution is to create a structure similar to the CollectionUpdateArgs
- Changing the onDelete API may be necessary, which would allow us to correct
SERVER-56518.
- is depended on by
-
SERVER-56518 findAndModify deletes unconditionally write preImage no-op oplog entries, leading to crash during chunk migration
- Closed