[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:
Depends
is depended on by SERVER-38562 Implement IndexBuildsCoordinator::vot... Closed
is depended on by SERVER-39071 implement commit quorum for two phase... Closed
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: SERVER-37639 Add checkIfCommitQuorumCanBeSatisfied() and checkIfCommitQuorumIsSatisfied() to the replication interface
Branch: master
https://github.com/mongodb/mongo/commit/e05ffdc10eb680dfbbf043678779aa4aac92bb0c

Comment by Githook User [ 31/Jan/19 ]

Author:

{'email': 'gregory.wlodarek@mongodb.com', 'name': 'Gregory Wlodarek'}

Message: SERVER-37639 Add CommitQuorumOptions to the Index Builds Coordinator instead of using WriteConcernOptions
Branch: master
https://github.com/mongodb/mongo/commit/1675a93a2a3085fd4c2b973324b341b6e167c2af

Comment by Githook User [ 31/Jan/19 ]

Author:

{'username': 'GWlodarek', 'email': 'gregory.wlodarek@mongodb.com', 'name': 'Gregory Wlodarek'}

Message: Revert "SERVER-37639 Add checkIfCommitQuorumCanBeSatisfied() and checkIfCommitQuorumIsSatisfied() to the replication interface"

This reverts commit 368eb15160d51e53a42e4e0411a5572e513941cc.
Branch: master
https://github.com/mongodb/mongo/commit/c065df4a1dae7fe0b73d7a85d13ff2beb47b459d

Comment by Githook User [ 31/Jan/19 ]

Author:

{'username': 'GWlodarek', 'email': 'gregory.wlodarek@mongodb.com', 'name': 'Gregory Wlodarek'}

Message: Revert "SERVER-37639 Add CommitQuorumOptions to the Index Builds Coordinator instead of using WriteConcernOptions"

This reverts commit 0a918866cfe600ffd071fca12e24bbe8545e58ed.
Branch: master
https://github.com/mongodb/mongo/commit/4c7749d3145d03b184dd58c2c7f10cf1cab4c8ff

Comment by Githook User [ 30/Jan/19 ]

Author:

{'email': 'gregory.wlodarek@mongodb.com', 'name': 'Gregory Wlodarek'}

Message: SERVER-37639 Add checkIfCommitQuorumCanBeSatisfied() and checkIfCommitQuorumIsSatisfied() to the replication interface
Branch: master
https://github.com/mongodb/mongo/commit/368eb15160d51e53a42e4e0411a5572e513941cc

Comment by Githook User [ 30/Jan/19 ]

Author:

{'username': 'GWlodarek', 'email': 'gregory.wlodarek@mongodb.com', 'name': 'Gregory Wlodarek'}

Message: SERVER-37639 Add CommitQuorumOptions to the Index Builds Coordinator instead of using WriteConcernOptions
Branch: master
https://github.com/mongodb/mongo/commit/0a918866cfe600ffd071fca12e24bbe8545e58ed

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.

Generated at Thu Feb 08 04:46:34 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.