[DRIVERS-818] updateMany without shard key Created: 30/Jan/20  Updated: 14/Oct/21  Resolved: 08/Apr/20

Status: Closed
Project: Drivers
Component/s: None
Fix Version/s: None

Type: Epic Priority: Major - P3
Reporter: Backlog - Core Eng Program Management Team Assignee: Unassigned
Resolution: Duplicate Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Depends
Related
is related to DRIVERS-817 updateOne, updateMany, deleteOne, and... Closed
Quarter: FY21Q1

 Description   
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



 Comments   
Comment by Esha Bhargava [ 08/Apr/20 ]

Combined with DRIVERS-817

Generated at Thu Feb 08 08:22:26 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.