-
Type:
Improvement
-
Resolution: Unresolved
-
Priority:
Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
Query Execution
-
None
-
3
-
None
-
None
-
None
-
None
-
None
-
None
-
None
Retryable updateOne() / replaceOne() / deleteOne() by _id (with upsert:false) broadcast the operation to every shard, even the one without chunks.
Customers are unable to run operations that broadcast queries to all shards even if one shard that doesn't own any chunks of a sharded collection is down or has replication lag. The shards that own a sharded collection's chunks should be the only ones targeted for operations on the sharded collection.
The goal of this ticket is to change retryable updateOne() / replaceOne() / deleteOne() by _id (with upsert:false) so that it only broadcasts the operation to shards that at least one chunk for the given collection (and are not excluded by the operation's filter).
Note: This ticket only pertains to retryable updateOne(), replaceOne(), and deleteOne().
There is a separate project being planned (SPM-3673) related to sessionless/non-retryable updateOne(), replaceOne(), and deleteOne(). SPM-3673 should tackle all the issues related to sessionless/non-retryable updateOne(), replaceOne(), and deleteOne().
- is duplicated by
-
SERVER-105800 Improve multi:false update/delete on _id to only target the required shards
-
- Closed
-