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

Resharding commit protocol should commit last on the configsvr

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

      Sharded DDLs typically commit first on the shards and last on the configsvr (with the shards holding the critical section until the commit on the configsvr has completed). This guarentees the property that the new collection 'timestamp' is a cluster time inclusive of the whole operation, after which it is safe to read from the collection.

      The resharding commit protocol does not uphold this property – first it commits on the configsvr and later it commits on the shards. While it is true that the critical section is held throughout this sequence, the new collection 'timestamp' is earlier than the local catalog collection rename done on the shards as part of their commit.

            backlog-server-catalog-and-routing [DO NOT USE] Backlog - Catalog and Routing
            jordi.serra-torrens@mongodb.com Jordi Serra Torrens
            0 Vote for this issue
            3 Start watching this issue