[SERVER-37639] Add checkIfCommitQuorumIsSatisfied() to the replication interface to check whether a given commit quorum is satisfied by a given set of commit ready members. Created: 15/Oct/18 Updated: 29/Oct/23 Resolved: 31/Jan/19 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Storage |
| Affects Version/s: | None |
| Fix Version/s: | 4.1.8 |
| Type: | Task | Priority: | Major - P3 |
| Reporter: | Dianna Hohensee (Inactive) | Assignee: | Gregory Wlodarek |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||||||
| Backwards Compatibility: | Fully Compatible | ||||||||||||
| Sprint: | Storage NYC 2019-01-28, Storage NYC 2019-02-11 | ||||||||||||
| Participants: | |||||||||||||
| Linked BF Score: | 0 | ||||||||||||
| Story Points: | 13 | ||||||||||||
| Description |
|
A simultaneous index build will have a commitQuorum setting, set by the user via createIndexes, which will dictate how many members of the replica set must be ready for commit before the primary will commit the index. Each index build will track which members are ready and must check whether the commitQuorum is satisfied. commitQuorum is the same type and takes the same settings as writeConcern.w: an integer number reflecting a number of replica set members; majority; or a replica tag set. The function should take a list of host:port pairs, which we are using to uniquely identify replica set members, along with the commitQuorum. It should return whether or not quorum is satisfied, leveraging the writeConcern checking machinery if we can, and/or the topology coordinator's member config; and probably error if the quorum can never be satisfied. |
| Comments |
| Comment by Githook User [ 31/Jan/19 ] |
|
Author: {'email': 'gregory.wlodarek@mongodb.com', 'name': 'Gregory Wlodarek'}Message: |
| Comment by Githook User [ 31/Jan/19 ] |
|
Author: {'email': 'gregory.wlodarek@mongodb.com', 'name': 'Gregory Wlodarek'}Message: |
| Comment by Githook User [ 31/Jan/19 ] |
|
Author: {'username': 'GWlodarek', 'email': 'gregory.wlodarek@mongodb.com', 'name': 'Gregory Wlodarek'}Message: Revert " This reverts commit 368eb15160d51e53a42e4e0411a5572e513941cc. |
| Comment by Githook User [ 31/Jan/19 ] |
|
Author: {'username': 'GWlodarek', 'email': 'gregory.wlodarek@mongodb.com', 'name': 'Gregory Wlodarek'}Message: Revert " This reverts commit 0a918866cfe600ffd071fca12e24bbe8545e58ed. |
| Comment by Githook User [ 30/Jan/19 ] |
|
Author: {'email': 'gregory.wlodarek@mongodb.com', 'name': 'Gregory Wlodarek'}Message: |
| Comment by Githook User [ 30/Jan/19 ] |
|
Author: {'username': 'GWlodarek', 'email': 'gregory.wlodarek@mongodb.com', 'name': 'Gregory Wlodarek'}Message: |
| Comment by Dianna Hohensee (Inactive) [ 17/Dec/18 ] |
|
Note that in index_build_entry.idl, set_index_commit_quorum_command.cpp and set_index_commit_quorum.idl we used WriteConcernOptions as a place holder for whatever class type we create for our needs in this ticket. WriteConcernOptions has too many options that are of no concern to achieving quorum, like it's 'j' field, and so should not be used: some minimal version thereof instead. |