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

Make the BatchWriteExecutor retry multi-writes only against unsuccessful shards

    XMLWordPrintable

    Details

    • Type: Task
    • Status: Closed
    • Priority: Major - P3
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 4.2.3, 4.3.3, 4.0.15
    • Component/s: Sharding
    • Labels:
      None
    • Backwards Compatibility:
      Fully Compatible
    • Backport Requested:
      v4.2, v4.0
    • Sprint:
      Sharding 2019-12-16, Sharding 2019-12-30

      Description

      Currently, the BatchWriteExecutor's retry logic for StaleShardVersion handling repeats the entire entry from the batch. This works correctly for batch entries, which contain a shard key, because they go to a single shard. However, for batch entries, which are part of a multi-update, this causes the successful shards to be repeated.

      This ticket is about introducing a map, which tracks on which shard a batch entry has succeeded, so that a retry won't send it there. It is a prerequisite for enabling SERVER-44598.

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              marcos.grillo Marcos José Grillo Ramirez
              Reporter:
              kaloian.manassiev Kaloian Manassiev
              Participants:
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved: