[SERVER-62766] Include "tid" field in delete oplog entries Created: 19/Jan/22  Updated: 29/Oct/23  Resolved: 09/Jun/22

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

Type: Task Priority: Major - P3
Reporter: Janna Golden Assignee: Hugh Tong (Inactive)
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Backwards Compatibility: Fully Compatible
Sprint: Server Serverless 2022-05-30, Server Serverless 2022-06-13
Participants:

 Description   

The delete path calls OpObserver::onDelete() (here and here) in order to log a delete op in the oplog.

Again similar to inserts/updates, OpObserverImpl::onDelete() constructs oplog entries differently depending on whether the op is part of a multi-document transaction or not. If it is part of a transaction, we construct the oplog entry by calling MutableOplogEntry::makeDeleteOperation. Add tenantId as a boost::optional parameter to MutableOplogEntry::makeDeleteOperation so that we can set the "tid" field on the ReplOperation constructed there if featureFlagRequireTenantId is set. If the op is not part of a transaction, we call replLogDelete. Grab the tenantID from NamespaceString in replLogDelete, and set the "tid" field on the entry there.

Let's again add a test case to the OpObserverImplTest and check that OpObserverImpl::onDelete() behaves as expected when called both in a multi-document transaction and not.



 Comments   
Comment by Githook User [ 06/Jun/22 ]

Author:

{'name': 'Hugh Tong', 'email': 'hugh.tong@mongodb.com', 'username': 'cortrain'}

Message: SERVER-62766 Write tenantId fields to oplog entries on delete
Branch: master
https://github.com/mongodb/mongo/commit/1751e9422bdbc60e3b1716b15d10fc3828bf3ed6

Generated at Thu Feb 08 05:56:00 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.