[SERVER-40683] Make wall clock times in replication structures required after 4.2 Created: 16/Apr/19  Updated: 06/Dec/22  Resolved: 31/Jul/19

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

Type: Task Priority: Major - P3
Reporter: Maria van Keulen Assignee: Backlog - Replication Team
Resolution: Duplicate Votes: 0
Labels: Upgrade/Downgrade
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Depends
depends on SERVER-40737 Use Date_t() as default wallTime valu... Closed
Duplicate
is duplicated by SERVER-42485 Remove FCV checks gating reporting w... Closed
Related
is related to SERVER-41650 loadLastOpTimeAndWallTime should use ... Closed
is related to SERVER-40078 Add wall clock time corresponding to ... Closed
is related to SERVER-34598 Add millisecond-granularity wallclock... Closed
Assigned Teams:
Replication
Participants:

 Description   

SERVER-40078 introduces wall clock times to several replication structures. To address mixed version communication, wall clock times are only required to be in these structures when the FCV is 4.2, such as in OplogQueryMetadata::readFromMetadata. These wall clock times should be required unconditionally after the 4.2 release. We could additionally consider adding the following invariant to MemberData::setLastAppliedOpTimeAndWallTime, MemberData::setLastDurableOpTimeAndWallTime, MemberData::advanceLastDurableOpTimeAndWallTime, and MemberData::advanceLastAppliedOpTimeAndWallTime:

invariant(opTime.opTime.isNull() || opTime.wallTime != Date_t::min())

The default value for wallTime in OpTimeAndWallTime is Date_t::min(), so adding this invariant will ensure that a meaningful wall clock time is passed to these functions when a meaningful OpTime is passed.



 Comments   
Comment by Jason Chan [ 31/Jul/19 ]

This work will be done as part of SERVER-42485.

Comment by Maria van Keulen [ 01/May/19 ]

SERVER-40737 plans to change the default value of the wall clock time to Date_t(). The invariant I suggested adding should compare against Date_t() once SERVER-40737 is pushed.

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