[COMPASS-7468] Investigate changes in PM-3209: Block balancing during updateMany Created: 17/Nov/23  Updated: 16/Jan/24  Resolved: 29/Nov/23

Status: Closed
Project: Compass
Component/s: None
Affects Version/s: None
Fix Version/s: No version

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

Issue Links:
Depends
Epic Link: COMPASS-7048
Documentation Changes: Not Needed
Documentation Changes Summary:

No action required in the DevTools products.


 Description   
Original Downstream Change Summary

There are two potential downstream concerns from the implementation of this project.

1. This project adds a cluster parameter called "pauseMigrationsDuringMultiUpdates". This parameter will mark updateMany and deleteMany as migration blocking operations while enabled.

2. This project adds the cluster parameter document representing "pauseMigrationsDuringMultiUpdates" to the output of serverStatus.

Description of Linked Ticket

Epic Summary

Summary

A customer can opt-in to pausing balancing in a sharded cluster when updateMany operations are received by the database to ensure that the updateMany operations are successfully executed and all of the applicable documents are updated in a consistent manner.  

Motivation

Today when a client application sends an updateMany operation to a sharded cluster it is not serialized with chunk migrations so there's a possibility that the updateMany operation will target documents in a migrating chunk which can lead to an inconsistent updates. The updateMany operation on a document with the balancer active could potentially happen 0, 1, 2 or more times. This inconsistent behavior is not returned or exposed to the client application so the application believes that the updateMany operation successfully occurred and ultimately leads to a loss of data integrity. Additionally by pausing the balancer an updateMany query does not require the shard key in the case where upsert:true

Documentation

Product Description
Scope
Technical Design
Docs Update



 Comments   
Comment by PM Bot [ 16/Jan/24 ]

Fix Version updated for upstream PM-3209:
8.0 Targeted

Generated at Wed Feb 07 22:46:39 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.