Allow tagging Operation FCV with either a global or local scope

XMLWordPrintableJSON

    • Type: Task
    • Resolution: Unresolved
    • Priority: Major - P3
    • None
    • Affects Version/s: 8.3.0-rc0
    • Component/s: None
    • None
    • Catalog and Routing
    • 🟩 Routing and Topology
    • None
    • None
    • None
    • None
    • None
    • None

      SERVER-99545 introduced Operation FCV (OFCV, VersionContext), an FCV snapshot to an operation.

      As initially introduced, an OFCV was always owned by a resilient distributed operation (ShardingDDLCoordinator), and was propagated across shards (global scope).
      To safely use OFCV for replica set operations (a local, non-persisted OperationContext) we need to tag it with local scope instead.

       

      The differences are:

      • A global OFCV is propagated across shards (SERVER-99557 / SERVER-99558), while a local OFCV is not.
      • A local OFCV may be used in FCV <8.2 as an in-memory state on primaries, not replicated through the oplog. On the On the other hand a global FCV can only be used in FCV ≥8.2 (due to ShardingDDLCoordinators requiring persistence).

       

      The scope is only held in-memory, i.e. not persisted when serialized.
      By default it is local, and it's set to "global" by ShardingDDLCoordinator, and also when propagated across shards.

            Assignee:
            Unassigned
            Reporter:
            Joan Bruguera Micó
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated: