9. Application
Driver
Query Router Query Router
P
S
S
S
P
S
P
S
S
Shard 1 Shard 2 Shard 3
s.commit_transaction() Uncommitted write
1. Select Coordinator
Coordinator
10. Application
Driver
Query Router Query Router
P
S
S
S
P
S
P
S
S
Shard 1 Shard 2 Shard 3
s.commit_transaction() Uncommitted write
1. Select Coordinator
2. Prepare
Coordinator
Prepared write
11. Application
Driver
Query Router Query Router
P
S
S
S
P
S
P
S
S
Shard 1 Shard 2 Shard 3
s.commit_transaction() Uncommitted write
1. Select Coordinator
2. Prepare
3. Commit
Coordinator
Prepared write
Committed write
13. Application
Driver
Query Router Query Router
P
S
S
S
P
S
P
S
Shard 1 Shard 2 Shard 3
Uncommitted write
Coordinator
Prepared write
Failure case 2: After Prepare Shard Primary Failure
14. Application
Driver
Query Router Query Router
P
S
S
S
P
P
S
S
Shard 1 Shard 2 Shard 3
Uncommitted write
Coordinator
Prepared write
Failure case 3: After Prepare Coordinator Failure
15. Two Phase Commit Support
----
Coming in 4.2
P
S
S
S
P
S
Query Router