[SERVER-36590] Allow shards to start new transactions at the active transaction number Created: 10/Aug/18 Updated: 29/Oct/23 Resolved: 15/Aug/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: |
|
||||||||||||||||||||||||||||
| Backwards Compatibility: | Fully Compatible | ||||||||||||||||||||||||||||
| Sprint: | Sharding 2018-08-27 | ||||||||||||||||||||||||||||
| Participants: | |||||||||||||||||||||||||||||
| Description |
|
Some exceptions can be thrown by shards that trigger internal retries by the router, like stale config or snapshot too old. Because mongos is not allowed to change the transaction number, to allow internal retries participants must be modified to allow starting a new transaction at a transaction number they have already seen for a given session id. So upon receiving startTransaction=true with txnNumber N, the shard should abort any in-progress transactions with txnNumber <= N and begin a new transaction at N. This behavior should be disallowed if the shard is in the commit, prepare, or prepare after abort state (or any state that indicates the shard has been involved in a two phase commit). |
| Comments |
| Comment by Githook User [ 15/Aug/18 ] |
|
Author: {'name': 'Jack Mulrow', 'email': 'jack.mulrow@mongodb.com', 'username': 'jsmulrow'}Message: |