[SERVER-27668] Remove unnecessary fields in ReplSetMetadata Created: 12/Jan/17  Updated: 06/Dec/22

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

Type: Task Priority: Major - P3
Reporter: Judah Schvimer Assignee: Backlog - Replication Team
Resolution: Unresolved Votes: 0
Labels: former-quick-wins
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Related
related to SERVER-46120 Error if a batch doesn't have metadat... Closed
is related to SERVER-27543 Create new metadata for oplog queries Closed
Assigned Teams:
Replication
Participants:

 Description   

SERVER-27543 describes how we created the OplogQueryMetadata with duplicated fields that were meant to move into OplogQueryMetadata from ReplSetMetadata. In 3.8 we can remove the duplicated fields from ReplSetMetadata as well as the lastOpVisible which no longer should have any users. As part of this work we will need to start processing the OplogQueryMetadata in the OplogFetcher to update our local state similar to what we currently do with the ReplSetMetadata. In 3.8 we can be confident that all OplogFetcher responses will contain the OplogQueryMetadata since it can only be in a mixed replica-set with 3.6, which knows how to return the OplogQueryMetadata.



 Comments   
Comment by Vesselina Ratcheva (Inactive) [ 06/Aug/20 ]

PM-1791 requires the lastOpVisible to stay in ReplSetMetadata. The cloners will cache this every batch so that we know how much oplog we need to apply to be consistent.

Comment by A. Jesse Jiryu Davis [ 25/Mar/20 ]

We do now process OplogQueryMetadata in OplogFetcher. The rest of this ticket is still incomplete.

Comment by Jason Chan [ 05/Aug/19 ]

We shouldn't remove lastopCommitted from ReplSetMetadata since as of v4.2, the last committed wall time is required.

Comment by Spencer Brody (Inactive) [ 14/Feb/17 ]

Moving this into Needs Triage until we can move it into a bucket for work for 3.8

Comment by Judah Schvimer [ 01/Feb/17 ]

lastOpCommitted may need to stay in the ReplSetMetadata for now since it's used to update the commit point on arbiters, and is used in sharding.

Comment by Spencer Brody (Inactive) [ 13/Jan/17 ]

We'll need to be processing the OplogQueryMetadata in the OplogFetcher in 3.6 so that when 3.8 stops sending those fields in the ReplSetMetadata we don't break mixed 3.6-3.8 operation.

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