[SERVER-36638] Replace state machine commit coordination implementation with Futures implementation Created: 14/Aug/18 Updated: 29/Oct/23 Resolved: 05/Dec/18 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Sharding |
| Affects Version/s: | None |
| Fix Version/s: | 4.1.7 |
| Type: | Task | Priority: | Major - P3 |
| Reporter: | Esha Maharishi (Inactive) | Assignee: | Matthew Saltz (Inactive) |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | ShardedTxn:DistributedCommit | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||||||
| Backwards Compatibility: | Fully Compatible | ||||||||||||
| Sprint: | Sharding 2018-11-19, Sharding 2018-12-03, Sharding 2018-12-17 | ||||||||||||
| Participants: | |||||||||||||
| Linked BF Score: | 66 | ||||||||||||
| Description |
|
There are three improvements we could make to how the coordinator shard processes votes and sends commit/abort: 1) Use one of the Grid's "arbitrary executors" rather than the Grid's "fixed executor". Currently, the fixed executor is used because it is the only executor for which the a mock network is supported by the sharding unit test fixtures. 2) If a voteCommit or voteAbort triggers making the decision, do not block the voteCommit/voteAbort Client thread on things like persisting the decision, waiting for majority writeConcern, sending the decision and waiting for acks. 3) Make sending an abort decision a "fire and forget" message. Currently, the ARS does not support sending "fire and forget" messages. |
| Comments |
| Comment by Githook User [ 05/Dec/18 ] |
|
Author: {'name': 'Matthew Saltz', 'email': 'matthew.saltz@mongodb.com', 'username': 'saltzm'}Message: |
| Comment by Esha Maharishi (Inactive) [ 05/Nov/18 ] |
|
Assigning to matthew.saltz to track the work to switch out the commit coordination implementation from being in a background thread to a chain of asynchronous events. If there's already a ticket for that, feel free to close this as a dupe. |