-
Type: Task
-
Resolution: Fixed
-
Priority: Major - P3
-
Affects Version/s: None
-
Component/s: Sharding
-
Fully Compatible
-
Sharding 2020-04-06, Sharding 2020-04-20, Sharding 2020-05-04, Sharding 2020-05-18
This task is to implement a VectorClockService, which will unify, track, gossip and ensure persistence for all of the global vector clock components. Specifically, the components which it will track are: clusterTime, configOpTime, topologyOpTime.
The VectorClockService will be hooked at all inbound/outbound network places in order to be able to gossip the global vector clock and should implement the following methods:
- gossipInMemoryVectorClockOut(BSONObjBuilder* outMessage)
- gossipInMemoryVectorClockIn(const BSONObj& inMessage)
- advanceVectorClock()
- waitForInMemoryVectorTimeToBePersisted()
- registerVectorClockChangeListener(ListenerInterface& nonBlockingListener)
- depends on
-
SERVER-46201 Implement a generic ReplicaSetStateAwareService
- Closed
-
SERVER-47870 Push updated majority commit point values on config servers into configOpTime
- Closed
- is depended on by
-
SERVER-47914 Move clusterTime from LogicalClock to VectorClock
- Closed