-
Type:
Improvement
-
Resolution: Fixed
-
Priority:
Major - P3
-
Affects Version/s: None
-
Component/s: None
-
Fully Compatible
-
None
-
3
-
None
-
None
-
None
-
None
-
None
-
None
When executing transactions on collections with global indexes, the set of shards participating in a transaction are the union of the shards containing the source data together with the shards containing any global index data that must be modified for the documents involved in a transaction.
Updating the shard to router message will allow mongod processes to add participants to an active transaction to accommodate any index maintenance that must occur as a result of modifying the source data.
This tickets requires adding additionalParticipants field as shown below. Mongos sends a transaction request to a shard(with attached transaction details) and the following message is received as the response.
Tests to try :
buildscripts/resmoke.py run jstests/sharding/mongos_not_retry_commands_in_transactions.js |tee log
buildscripts/resmoke.py run txn_two_phase_commit_basic.js |tee log