-
Type: Task
-
Resolution: Done
-
Priority: Major - P3
-
Affects Version/s: None
-
Component/s: Replication
-
None
-
Fully Compatible
-
v3.4
-
Repl 2017-01-23, Repl 2017-02-13, Repl 2017-03-06
-
0
Oplog queries require different metadata from heartbeats. There are fields that each need that the other doesn't, and there are fields that one should consider that the other should not. As we are defining the role that each of these commands play in the replication process, the metadata that each replication command carries must be clarified as well. We will now have ReplSetMetadata with $replData like we have now, but we will add in a new OplogQueryMetadata with $oplogQueryData. The OplogQueryMetadata can have the primaryIndex, the lastOpCommitted, the syncSourceIndex, the lastOpApplied, and the rbid from after the query. The OplogFetcher will then request both types of metadata. For backwards compatibility we need to keep ReplSetMetadata the same as it is now, but in the future (3.8) we can strip it down to term, configVersion, replsetID, and lastOpCommitted (as long as sharding needs it outside of oplog querying), to deduplicate the fields in OplogQueryMetadata only needed for oplog querying. We will keep having the OplogFetcher request both types of metadata since it needs fields from both. We are only removing fields that other commands like heartbeating do not need.
- is depended on by
-
SERVER-27403 Consider term and rbid when validating the proposed sync source
- Closed
- is related to
-
SERVER-27545 Include RBID in replSet metadata of command replies
- Closed
- related to
-
SERVER-27668 Remove unnecessary fields in ReplSetMetadata
- Backlog