Uploaded image for project: 'Drivers'
  1. Drivers
  2. DRIVERS-818

updateMany without shard key

    • Type: Icon: Epic Epic
    • Resolution: Duplicate
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Component/s: None
    • None
    • Done
    • updateMany without shard key

      Downstream Change Summary

      Haven't started scoping yet but suspect this will need drivers changes.

      Description of Linked Ticket

      Epic Summary

      Summary

      This project proposes making updateMany, without a shard key in the filter, work correctly against a sharded collection, for all combinations of ordered:true/false and upsert:true/false. We will consider several ways to implement this - using transactions against all concurrently targeted shards or using two-phase updates where the first phase establishes cursors and the second phase performs the actual updates.

      Motivation

      The current implementation of updateMany against a sharded collection doesn’t work correctly, because it doesn’t synchronise with chunk migrations and doesn’t perform chunk filtering. As a result, it has the potential of applying updates to the same document between zero and multiple times. Furthermore, it the upsert:true option requires that a shard key be specified so that a unique shard can be targeted.

      Documentation

      Scope Document
      Technical Design Document

            Assignee:
            Unassigned Unassigned
            Reporter:
            backlog-server-pm Backlog - Core Eng Program Management Team
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: