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

Calling move/split/mergeChunk after one another from different MongoS is not causally consistent

    • Type: Icon: Bug Bug
    • Resolution: Unresolved
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: 3.6.22, 4.2.12, 4.0.23, 4.4.4, 4.9.0-alpha4, 5.0.1
    • Component/s: Sharding
    • None
    • Catalog and Routing
    • Sharding EMEA 2021-09-06, Sharding EMEA 2021-09-20, Sharding EMEA 2021-10-04, Sharding EMEA 2021-10-18, Sharding EMEA 2021-11-01, Sharding EMEA 2021-11-15, Sharding EMEA 2021-11-29, Sharding EMEA 2021-12-13, Sharding EMEA 2021-12-27, Sharding EMEA 2022-01-10, Sharding EMEA 2022-01-24, Sharding EMEA 2022-02-07
    • 37

      Note: This is not a correctness bug, just an annoyance for tests and for people who do manual chunk operations outside of the Balancer.

      The move/split/mergeChunk set of commands only involve the chunk's owner shard and the config server, but they don't propagate any kind of causality token to the client, similar to causally-consistent writes for example.

      This means that if one issues a split on one MongoS and then move from another, the move may actually not see the effects of the split and return an error that chunk with the exact specified bounds doesn't exist.

      This is not a problem for the Balancer, because (a) it always runs on the config server primary, which is as up-to-date as can be and (b) because it almost always runs on the same node.

            Assignee:
            backlog-server-catalog-and-routing [DO NOT USE] Backlog - Catalog and Routing
            Reporter:
            kaloian.manassiev@mongodb.com Kaloian Manassiev
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated: