-
Type: Task
-
Resolution: Fixed
-
Priority: Major - P3
-
Affects Version/s: None
-
Component/s: None
-
Service Arch
-
Fully Compatible
-
CAR Team 2024-02-05, CAR Team 2024-02-19
-
172
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.
- is related to
-
SERVER-83841 Simplify the VectorClock implementations
- Backlog