[SERVER-35037] Create new concurrency suite that runs consecutive operations inside of a single transaction Created: 17/May/18 Updated: 29/Oct/23 Resolved: 03/Aug/18 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Replication, Testing Infrastructure |
| Affects Version/s: | None |
| Fix Version/s: | 4.0.2, 4.1.2 |
| Type: | Task | Priority: | Major - P3 |
| Reporter: | Max Hirschhorn | Assignee: | Samyukta Lanka |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | PM-988 | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||||||||||||||||||
| Backwards Compatibility: | Fully Compatible | ||||||||||||||||||||||||
| Backport Requested: |
v4.0
|
||||||||||||||||||||||||
| Sprint: | Repl 2018-06-04, Repl 2018-06-18, Repl 2018-07-02, Repl 2018-07-16, Repl 2018-07-30, Repl 2018-08-13 | ||||||||||||||||||||||||
| Participants: | |||||||||||||||||||||||||
| Description |
|
We should be able to gain further coverage of transactions when operations are happening on the database concurrently by leveraging the existing FSM workloads. Unlike the replica_sets_multi_stmt_txn_jscore_passthrough.yml test suite, it will be possible (and in some cases very probable) for operations to trigger a write conflict once run inside of a transaction. robert.guo proposed the idea of retrying a single state function's execution until the transaction commits. In order to make this approach compatible with an arbitrary FSM workload, we'll need to make a copy of the args.data object before the state function is called. This ensures a subsequent execution of the state function when the transaction aborts doesn't (speculatively) contain the effects of the aborted transaction. The args.data object should be reassigned to the possibly mutated value if the transactions commits. |
| Comments |
| Comment by Githook User [ 21/Aug/18 ] | |||||||||||||||||||||||||||||||||||
|
Author: {'name': 'Samy Lanka', 'email': 'samy.lanka@gmail.com', 'username': 'lankas'}Message: (cherry picked from commit 806b9c32dff674b72110f2acd8604e950afab102) | |||||||||||||||||||||||||||||||||||
| Comment by Githook User [ 03/Aug/18 ] | |||||||||||||||||||||||||||||||||||
|
Author: {'name': 'Samy Lanka', 'email': 'samy.lanka@gmail.com', 'username': 'lankas'}Message: | |||||||||||||||||||||||||||||||||||
| Comment by Max Hirschhorn [ 17/May/18 ] | |||||||||||||||||||||||||||||||||||
|
As I started up writing this ticket's description, I came to a realization where I no longer believe the jstests/libs/txns/txn_override.js override file from
|