-
Type: Task
-
Resolution: Done
-
Priority: Major - P3
-
Affects Version/s: None
-
Component/s: Sharding
-
Fully Compatible
-
Sharding NYC 2022-11-28
SERVER-42114 had added a TODO SERVER-28756 comment to follow up after mongos stopped omitting the txnNumber field when writing to the config database. The special codepath ShardingCatalogClientImpl::writeConfigServerDirect() is what caused the txnNumber to be omitted from writes to the config database through mongos. SERVER-51070 removed the writeConfigServerDirect() function which had special retry logic for writes to the config database.
After some internal discussion, we don't believe there is value to permit end users to run replica set transactions or cross-shard transactions on the config database through mongos. The remaining work for SERVER-28756 is to remove the TODO SERVER-28756 comment and continue disallowing transactions on the config database through mongos.
// TODO SERVER-28756: Change allowTransactionsOnConfigDatabase to true once we fix the bug // where the mongos custom write path incorrectly drops the client's txnNumber. auto allowTransactionsOnConfigDatabase = false; validateSessionOptions(*_osi, command->getName(), nss, allowTransactionsOnConfigDatabase);
Original title
Remove the custom CSRS config server write retry logic
Original description
In order to support the continuous stepdown suite we implemented a custom write retry logic. Once retriable writes are supported by the server by default, this logic will no longer be necessary in all the places we put it and should be removed or at the very least consolidated within ShardRemote.
- depends on
-
SERVER-51070 Get rid of writeConfigServerDirect for writes to the ConfigServer database
- Closed
- is related to
-
SERVER-42114 Allow single RS transactions to run on the config database excluding config.transactions
- Closed