[SERVER-36591] Allow mongos to retry on snapshot errors received when starting a transaction Created: 10/Aug/18  Updated: 29/Oct/23  Resolved: 13/Sep/18

Status: Closed
Project: Core Server
Component/s: Sharding
Affects Version/s: None
Fix Version/s: 4.1.3

Type: Task Priority: Major - P3
Reporter: Jack Mulrow Assignee: Jack Mulrow
Resolution: Fixed Votes: 0
Labels: ShardedTxn:RouterSupport
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Gantt Dependency
has to be done after SERVER-36237 Integrate atClusterTime selection on ... Closed
has to be done after SERVER-36590 Allow shards to start new transaction... Closed
Backwards Compatibility: Fully Compatible
Sprint: Sharding 2018-08-27, Sharding 2018-09-10, Sharding 2018-09-24
Participants:

 Description   

Mongos should only retry on snapshot errors (SnapshotTooOld or SnapshotUnavailable) during the first statement in a cross-shard transaction. Each retry attempt should choose a new atClusterTime and once a global snapshot has been successfully established on all targeted shards, the atClusterTime used should be made immutable for the remainder of the transaction and used when targeting any new participants. If any future statements encounter a snapshot error, mongos should abort the entire transaction.

If mongos exhausts its allowed retry attempts trying to establish a snapshot, the snapshot error returned to the client should have the TransientTransactionError label.

Shards should always abort their local transactions on any snapshot error, since this implies snapshot level read concern and a cross-shard transaction with snapshot level read concern cannot continue if any targeted shard cannot provide a snapshot at the chosen global timestamp.



 Comments   
Comment by Githook User [ 13/Sep/18 ]

Author:

{'name': 'Jack Mulrow', 'email': 'jack.mulrow@mongodb.com', 'username': 'jsmulrow'}

Message: SERVER-36591 Fill in placeholder SERVER ticket
Branch: master
https://github.com/mongodb/mongo/commit/cd198ae20230746491022a3d33330a3af2807832

Comment by Githook User [ 13/Sep/18 ]

Author:

{'name': 'Jack Mulrow', 'email': 'jack.mulrow@mongodb.com', 'username': 'jsmulrow'}

Message: SERVER-36591 Allow mongos to retry on snapshot errors encountered in first txn statement
Branch: master
https://github.com/mongodb/mongo/commit/302411fc46afe18e3544c04cf2fb9a8b331eba16

Generated at Thu Feb 08 04:43:34 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.