-
Type: Task
-
Resolution: Fixed
-
Priority: Major - P3
-
Affects Version/s: None
-
Component/s: None
-
None
-
Fully Compatible
-
Sharding 2019-07-29, Sharding 2019-08-12
Currently all transactions are disallowed on the config database. To allow refineCollectionShardKey to use a single replica set transaction on the config server primary that updates entries in config.collections, config.chunks, and config.tags, this restriction will need to be relaxed to only disallow transactions on config.transactions.
This restriction will not be relaxed on mongos because currently transaction numbers are not propagated by mongos for writes on the config database because of its custom CSRS write retry logic (which will be removed by SERVER-28756).
Proposed implementation:
- Thread a command's full namespace through validateSessionOptions() to CommandHelpers::canUseTransactions() instead of the dbname, replace the check that the database is "config" with a check that the namespace is "config.transactions" if the node's serverGlobalParams.clusterRole is not none.
- has to be done before
-
SERVER-42143 Convert refineCollectionShardKey metadata updates to use a single RS transaction
- Closed
- related to
-
SERVER-28756 Remove TODO SERVER-28756 comment and continue disallowing transactions on the config database through mongos
- Closed