[SERVER-83136] Move VectorClock onto Service and support VectorClockMongos in mongod Created: 10/Nov/23  Updated: 06/Feb/24

Status: In Code Review
Project: Core Server
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Task Priority: Major - P3
Reporter: George Wangensteen Assignee: Pol Pinol
Resolution: Unresolved Votes: 0
Labels: pm-635-milestone-2
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Assigned Teams:
Service Arch
Sprint: CAR Team 2024-02-05, CAR Team 2024-02-19
Participants:

 Description   

The router and shard vector-clocks have some subtle differences, including what is gossiped-out and some behavior-defining virtual function overloads. We should move VectorClock onto Service so that each ClusterRole can have the correct behavior/it's own implementation of vector clock, and link vector_clock_mongos into mongod. We should also take care to ensure that vector_clock_mutable remains unlinked into mongos/the dedicated router, to ensure we don't perform any illegal ticking behavior from the router role.
An alternative to consider when implementation begins would be to consolidate the implementations, because it's safe to have one vector-clock itself shared between the processes. We just would need to ensure that the existing behavioral differences are maintained when we use the implementation, depending on the role of the user of the VectorClock.


Generated at Thu Feb 08 06:51:21 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.