Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-83841

Simplify the VectorClock implementations

    • Type: Icon: Improvement Improvement
    • Resolution: Unresolved
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • None
    • Catalog and Routing
    • CAR Team 2023-12-25, CAR Team 2024-01-08, CAR Team 2024-01-22
    • 2

      With SERVER-64863, the configTime is also gossiped-in on configServers. With that change in place, the gossipIn and gossipOut functions become symmetrical, which might yield an opportunity to simply the general VectorClock implementation: 

      1. It might be possible to get rid of the separate gossipIn / gossipOut methods, checking at the place where they are called (the only thing left is the trivial vector clock which doesn't gossip in or out anything, so we can perhaps even just make its gossiping methods to be noop).
      2. For the replica-set case, it should be investigated whether there is harm to also include the config/topology time in the returned set [given that it will never have value sent, so these values will stay at zero].
      3. Because configTime and topologyTime are now being gossiped, we might be able to move the ticking of those clocks to the primary only. This would also improve performance, as currently redundant work is performed when a node has reached a commit-point, that has a lower configTime/topologyTime, than what it has already learned through gossiping.

            Assignee:
            backlog-server-catalog-and-routing [DO NOT USE] Backlog - Catalog and Routing
            Reporter:
            robert.sander@mongodb.com Robert Sander
            Votes:
            0 Vote for this issue
            Watchers:
            8 Start watching this issue

              Created:
              Updated: