-
Type: Task
-
Resolution: Fixed
-
Priority: Major - P3
-
Affects Version/s: None
-
Component/s: Sharding
-
None
-
Fully Compatible
-
Sharding EMEA 2021-09-06, Sharding EMEA 2021-09-20, Sharding EMEA 2021-10-04, Sharding EMEA 2021-10-18, Sharding EMEA 2021-11-01, Sharding EMEA 2021-11-15, Sharding EMEA 2021-11-29, Sharding EMEA 2021-12-13
-
100
(UPDATE)
This ticket is about preventing writes on orphan documents of update/delete operations that go through a mongos (i.e. the common case). We have a separate ticket to prevent direct update/delete operations to shards affecting orphan documents (SERVER-61847).
Initially we thought about just doing orphan filtering when needed (i.e. trying to identify in which scenarios the shard versioning protocol provides enough guarantees), but in one of the projects reviews we agreed on doing it for all update/delete ops.
Right now there are only two scenarios in which this could happen and in both cases we are not attaching a valid shard version to the command:
- Broadcast writes (if I recall correctly, we are currently attaching ChunkVersion::IGNORED())
- Direct writes to a shard without going through mongosĀ (
SERVER-61847)