[SERVER-70905] handle multi-oplog batched writes during oplog application Created: 27/Oct/22  Updated: 29/Oct/23  Resolved: 06/Feb/23

Status: Closed
Project: Core Server
Component/s: None
Affects Version/s: None
Fix Version/s: 6.3.0-rc0

Type: Task Priority: Major - P3
Reporter: Benety Goh Assignee: Benety Goh
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate
is duplicated by SERVER-70904 use OplogApplierImpl to process batch... Closed
is duplicated by SERVER-70572 support applyOps oplog entry chaining... Closed
Related
related to SERVER-72723 support rollback for multi-oplog batc... Closed
related to SERVER-76408 create feature flag for SERVER-70903 Closed
related to SERVER-73211 add OpTime hasher for stdx::unordered... Closed
related to SERVER-73847 add support for ReplSetTest nodeOptio... Closed
Assigned Teams:
Storage Execution
Backwards Compatibility: Fully Compatible
Sprint: Execution Team 2023-02-20, Execution Team 2023-02-06
Participants:

 Description   

Secondary oplog application currently handles a chain of applyOps oplog entries for a large multi-document transaction. We would like to extend this process to also handle a chain of applyOps entries for a large batched writes. This would involve separate some of the logical session and txnNumber handling from extracting the chain of replicated operations.

The entry point to this process is currently in OplogApplierImpl for multi-doc transactions. The opsMap function mapping in oplog.cpp is still used for batched writes which are replicated as atomic applyOps entries. We would have to fold the atomic applyOps processing into OplogApplierImpl to take advantage of the applyOps chaining logic provided in part by the TransactionHistoryIterator class.

There is some overlap between this ticket and “use OplogApplierImpl to process batched writes”. If no further work is determined to be necessary to handle the multi-oplog format for batched writes, this ticket may be closed accordingly.



 Comments   
Comment by Githook User [ 04/Feb/23 ]

Author:

{'name': 'Benety Goh', 'email': 'benety@mongodb.com', 'username': 'benety'}

Message: SERVER-70905 add missing invariant
Branch: master
https://github.com/mongodb/mongo/commit/450ffbb63d5b265d2e17c6ec4556f030099b9f60

Comment by Benety Goh [ 03/Feb/23 ]

Missed an invariant on the vector here after extracting the ops.

Comment by Githook User [ 03/Feb/23 ]

Author:

{'name': 'Benety Goh', 'email': 'benety@mongodb.com', 'username': 'benety'}

Message: SERVER-70905 oplog application handles large batched writes
Branch: master
https://github.com/mongodb/mongo/commit/40f676658dceddecc10f4303f1b752d184623740

Generated at Thu Feb 08 06:17:28 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.