-
Type: Bug
-
Resolution: Unresolved
-
Priority: Major - P3
-
None
-
Affects Version/s: 6.0.0, 7.0.0, 8.0.0
-
Component/s: None
-
Catalog and Routing
-
ALL
In order for DDLs to make forward progress on sharded clusters, we require the operation to be majority committed on all involved shards because we can't afford partial rollbacks in a distributed system.
We forcibly override with w:majority any write concern the user attaches to a DDL operation by using generic_arguments_util::setMajorityWriteConcern, e.g. for the rename collection operation here).
By doing so, we prevent the following issues:
- Different shards could have a different number of replica set members (w:N may mean majority on some shards and a lower level on others)
- The number of replica set members may change while performing a distributed DDL
The current logic mirrors what we already do for distributed transactions (SERVER-92585).
There is currently no machinery ensuring replica set members stability during DDLs so the "all majority" workaround can't be trivially replaced.
This behavior is currently undocumented and may generate confusion.
- is duplicated by
-
SERVER-97226 dropIndexes command suppresses write concern errors.
- Closed
-
SERVER-97471 drop/dropDatabase: Mongos WriteConcernError Behavior Differs from Mongod
- Closed
-
SERVER-97564 mongos does not return WriteConcernError in renameCollection
- Closed
- is related to
-
SERVER-97736 DDLs passing through DDL coordinators hang as long as majority write concern is not available
- Backlog
- related to
-
SERVER-92585 User-provided write concern is not honored when committing distributed transactions using 2PC
- Backlog
-
SERVER-80103 Mongos WriteConcernError Behavior Differs from Mongod
- Closed