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

Ensure that any write to the recovery document of a Sharding DDL coordinator is serialised

    • Type: Icon: Improvement Improvement
    • Resolution: Unresolved
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • Catalog and Routing
    • 3

      The ShardingDDLComponent infrastructure includes a state document to keep track of the progress of its execution; this object may be accessed by multiple threads, such as:

      • the executor running the coordinator itself (r/w)
      • $currentOps requests (r)

      The DDL infrastructure also defines a mutex to protect the access to the doc, but it is still the responsibility of each implementation to enforce the right semantics.

      The DDL infrastructure could instead provide a set of higher level primitives for accessing the recovery document object that implements the following semantics:

      • the DDL executor thread is the only one allowed to write onto the recovery document
      • no reads are allowed while a write is in progress

            backlog-server-catalog-and-routing Backlog - Catalog and Routing
            paolo.polato@mongodb.com Paolo Polato
            0 Vote for this issue
            3 Start watching this issue