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

    XMLWordPrintableJSON

Details

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Major - P3 Major - P3
    • None
    • 3.6.22, 4.2.12, 4.0.23, 4.4.4, 4.9.0-alpha4, 5.0.1
    • Sharding
    • 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

    Description

      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.

      Attachments

        Activity

          People

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

            Dates

              Created:
              Updated: