-
Type:
Improvement
-
Resolution: Fixed
-
Priority:
Major - P3
-
Affects Version/s: None
-
Component/s: None
-
None
-
Fully Compatible
-
v7.0
-
Repl 2023-04-17, Repl 2023-05-01
-
None
-
None
-
None
-
None
-
None
-
None
-
None
This is a follow-up of SERVER-72502, which batches prepareTransaction entries, while leaving commitTransaction/abortTransaction entries to be processed individually. Technically commits and aborts can be batched with other non-prepare oplog entries, except for certain edge cases (e.g. the prepareTransaction entries that they refer to are prepared prior to stepdown or prepared during to recovery/rollback, in which cases the prepared transactions have not been split). We cannot use splitSessionManager to check for transaction being split in OplogBatcher since that has race with OplogApplier, we need to investigate and do it in another way.
EDIT: We ended up only allowing commitTransaction/abortTransaction to be batched with other commitTransaction/abortTransaction entries. This is good enough in terms of performance and introduces less risks.
- is related to
-
SERVER-101626 Prepared transactions are bottlenecked on secondaries
-
- Investigating
-