Commit quorum and votingMembers
Parent: Resumable index builds · Published reference · snapshot 2026-10-30
↓ Facts as markdownall context files
Source-anchored research for Commit quorum and votingMembers. Run status: COMPLETED.
These notes link each claim to its source. Some citations identify archived research reports that are no longer hosted on this site. A published reference means the content is available; it does not certify independent review or accuracy.Read the editorial policy and follow the sources before relying on a claim.
How it works
- MongoDB 8.0 documents checkpoint recovery for an interrupted replica-set index build after a clean shutdown with force:true or SIGTERM when quorum is "votingMembers". That setting does not make a crash resumable: the documented crash path restarts the build from the beginning. (high confidence) (verified as of 2026-10-30) [source]
- For the two-phase build path, the server design lists a voting replica-set member, literal commit quorum "votingMembers", and enabled majority read concern as general resumability prerequisites. A numerically equivalent quorum or "majority" must not be assumed to preserve resumability merely because the same members happen to satisfy it. (high confidence) (verified as of 2026-10-30) [source]
- A missing data-bearing voter can leave a default-quorum build waiting even when an election majority remains available. Percona demonstrated this in a three-voter set: the default waited for the third node, whereas a separate build using "majority" completed with two nodes available. (high confidence) [source]
Problems, failure modes and limitations
- SERVER-124042 reports a rolling-restart race: quorum appeared satisfied although a returning secondary restarted its uncommitted build. The issue lists no affected or fixed versions, so it cannot establish exposure for a particular release. (low confidence) (verified as of 2026-05-27) [source]
- A member with buildIndexes:false cannot participate in a commit quorum. The current command reference says "votingMembers" cannot be used if any voting node has buildIndexes:false; operators must change that configuration or choose another quorum. (low confidence) (verified as of 2026-10-30) [source]
- Lowering commit quorum can let the primary commit before a slow secondary is ready. When that secondary reaches commitIndexBuild, oplog application can stall until its local build finishes. Quorum controls readiness coordination and does not replace write concern. (high confidence) [source]
Comparisons and alternatives
- The master-branch server design also describes a primary-driven index-build path that replicates internal index writes and has no commit-quorum concept. The "votingMembers" resumability rule should therefore be scoped to simultaneous two-phase builds rather than presented as a universal rule for every index-build architecture. (low confidence) (verified as of 2026-10-30) [source]
Facts and statements
- For simultaneous two-phase index builds, commitQuorum gates the primary commit on readiness reports, including the primary itself. The default "votingMembers" requires all voting data-bearing members; it is distinct from "majority" and excludes arbiters and non-voting data-bearing members. (high confidence) [source]
- The server design additionally requires a voting member and majority read concern for two-phase resumability. It waits for the majority commit point before scanning, after installing side-write interception. (low confidence) [source]
- A missing data-bearing voter can leave a votingMembers build waiting even with a healthy election majority. Percona reproduced this on 4.4.22-21: the index appeared in getIndexes but was unavailable to the query planner until the missing voter returned. (medium confidence) [source]
- setIndexCommitQuorum can change a running build to majority. For a createIndexes operation building several indexes together, indexNames must identify the entire group belonging to that builder. (medium confidence) [source]
- Lowering quorum trades readiness coverage for earlier primary commit: a secondary that has not finished can block oplog application upon receiving commitIndexBuild. A smaller quorum does not restrict which members build the index. (medium confidence) [source]
- Starting in MongoDB 8.0, post-commit write concern waits for the specified nodes to replicate the index-build oplog entry; earlier releases waited for those nodes to finish the index build. Do not interpret command success as proof that every secondary index is usable. (high confidence) (verified as of 2026-10-30) [source]
- The MongoDB 8.0 manual allows checkpoint resumption only once for a given build. A further restart during that build starts it from the beginning; votingMembers alone is therefore insufficient to guarantee repeated checkpoint recovery. (low confidence) (verified as of 2026-10-30) [source]
- Members vote after scanning their collection and performing the first side-write drain. While waiting for the commit decision they continue handling side writes. After quorum, the primary checks remaining constraints and replicates either commitIndexBuild or abortIndexBuild. (high confidence) [source]
- setIndexCommitQuorum changes the requirement of an in-progress build. Its indexNames array must include the entire group built by the same createIndexes operation. It has no effect on a build started with quorum 0. (medium confidence) [source]
Children
- No children recorded.