-
Type:
Task
-
Resolution: Unresolved
-
Priority:
Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
None
-
Catalog and Routing
-
2
-
🟩 Routing and Topology
-
None
-
None
-
None
-
None
-
None
-
None
During the code review of SERVER-126262, we realized that we don't have documentation or enforcement of the vector clock's invariants that are relied upon for correctness by other components.
One of these invariants is that a bumped topology time cannot be gossiped out without a bumped config time, since the config time is used by the shard registry as the afterClusterTime to read the new entries in config.shards.
Another invariant documented sporadically in the code is that the operationTime must be less than or equal to the clusterTime gossiped out.
It would be good to have a list of invariants which are both validated in unittests or the code itself and documented clearly in the header file or a readme.
- is related to
-
SERVER-126262 Bypass VectorClock mutex on the per-request hot path via atomic shadow
-
- Closed
-