[SERVER-37180] Use OplogEntry everywhere in oplog application Created: 17/Sep/18  Updated: 29/Oct/23  Resolved: 29/Jul/19

Status: Closed
Project: Core Server
Component/s: Replication
Affects Version/s: None
Fix Version/s: 4.3.1

Type: Improvement Priority: Major - P3
Reporter: Siyuan Zhou Assignee: Lingzhi Deng
Resolution: Fixed Votes: 0
Labels: former-quick-wins
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Related
related to SERVER-36570 Make OplogEntry mutable Closed
related to SERVER-37480 Use OplogEntry in command oplog appli... Closed
related to SERVER-35353 Use OplogEntry class in logOp Closed
Backwards Compatibility: Fully Compatible
Sprint: Repl 2019-06-17, Repl 2019-07-01, Repl 2019-07-15, Repl 2019-07-29, Repl 2019-08-12
Participants:

 Description   

OplogEntry is used in OplogApplier, but raw BSON is still needed by SyncTail::syncApply, which parses it again eventually for operations and commands. We should only parse the BSON once and use the parsed OplogEntry everywhere in oplog application.



 Comments   
Comment by Githook User [ 29/Jul/19 ]

Author:

{'name': 'Lingzhi Deng', 'username': 'ldennis', 'email': 'lingzhi.deng@mongodb.com'}

Message: SERVER-37180: Use OplogEntry everywhere in oplog application
Branch: master
https://github.com/mongodb/mongo/commit/102c20ab166050ae7357732070bc8262aa61749c

Comment by Siyuan Zhou [ 17/Sep/18 ]

One challenge is that InsertGroup::groupAndApplyInserts creates an invalid oplog entry that include an array of "ts" and an array of "t".

applyOperation_inlock() parses them and inserts them in one WUOW.

Generated at Thu Feb 08 04:45:15 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.