-
Type:
Task
-
Resolution: Unresolved
-
Priority:
Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
None
-
Storage Execution
-
None
-
None
-
None
-
None
-
None
-
None
-
None
Currently, the classic applier (OplogApplierImpl) doesn't save partial transactions: partialTxnOps only lives for the lifespan of one batch. Therefore, when the classic applier gets the next batch, the previously buffered transaction operations are forgotten.
The classic applier resorts to reassembling a large transaction by traversing through the oplog chain of applyOps transaction entries. We may get better performance if we cache these operations across batches. There are some cases where we will still have to traverse the oplog, such as on restart (we'll lose in-memory), but we should try to cache entries and check the cache first on trying to reconstruct / reassemble a large txn chain.