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

Make the commit of split chunks idempotent

    • Type: Icon: Bug Bug
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • 8.0.0-rc0, 6.0.15, 7.0.7, 7.3.2
    • Affects Version/s: 4.4.0, 5.0.0, 6.0.0, 7.1.0-rc0, 7.0.0-rc4
    • Component/s: None
    • Labels:
    • Catalog and Routing
    • Fully Compatible
    • v7.3, v7.2, v7.0, v6.0, v5.0
    • Sharding EMEA 2023-05-15, CAR Team 2024-01-22, CAR Team 2024-02-05, CAR Team 2024-02-19
    • 5
    • 3

      The split command may return an error to the user when the execution succeeds.

      That's an example:

      • User sends split command to the router.
      • Router processes the user info and gets the chunk range to be splitted and the split points.
      • Router sends _configsvrCommitChunkSplit command to the config server with the info processed.
      • Config server succeeds but the router doesn't receive the response.
      • Router retries _configsvrCommitChunkSplit command.
      • Config server returns an error because it can't find a chunk within the given range since it was already splitted. (v6.0 sends another error, but the result is the same).
      • Router returns an error to the user.


      To enable idempotency on _configsvrCommitChunkSplit a check should be placed on the split commit: first check if a chunk with the given range exists, if not, check if there are chunks with the given split points as boundaries.


            yujin.kang@mongodb.com Yujin Kang Park
            silvia.surroca@mongodb.com Silvia Surroca
            0 Vote for this issue
            5 Start watching this issue