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

Recipient shard in chunk migration can skip fetching changes to the migrated range, leading to lost writes

    • Fully Compatible
    • ALL
    • v7.0, v6.0, v5.0, v4.4
    • Sharding NYC 2023-06-26, Sharding NYC 2023-07-10
    • 135

      The recipient shard fetches changes to the documents in the range being migrated by continuously running the _transferMods command against the donor shard. The donor shard has the changes buffer in memory.

      The termination condition for when the recipient shard stops attempting to fetch changes from the donor shard is when both of the following conditions are satisfied:

      However it is possible even when none of the changes returned by the _transferMods commands are in the range being migrated for there to still be a pending batch on the donor shard which would have changes in the range being migrated. In particular, transactions are not filtering out changes which are unrelated to range being migrated and can lead to an entire _transferMods command having changes which are wholly unrelated to the range being migrated (SERVER-78415).

            max.hirschhorn@mongodb.com Max Hirschhorn
            max.hirschhorn@mongodb.com Max Hirschhorn
            0 Vote for this issue
            14 Start watching this issue