Index build commit quorum (commitQuorum and setIndexCommitQuorum)
Parent: Rolling index builds · Published reference · snapshot 2026-10-31
↓ Facts as markdownall context files
Source-anchored research for Index build commit quorum (commitQuorum and setIndexCommitQuorum). 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.
Structure and components
- For an active build, db.runCommand({setIndexCommitQuorum: "invoices", indexNames: ["invoices_1", "status_1"], commitQuorum: "majority"}) changes the threshold. indexNames must contain the complete index-name set from the original builder operation. (low confidence) [source]
Problems, failure modes and limitations
- At creation, commitQuorum:0 disables quorum voting and waiting while members still start building simultaneously. A build started with zero cannot later have its quorum changed using setIndexCommitQuorum. (medium confidence) [source]
- Nodes with buildIndexes: false cannot participate in commit quorum. If a voting node has that setting, the default votingMembers quorum is unavailable; configure index building or choose another quorum. (high confidence) [source]
- An excluded or slower secondary may stall oplog application at commitIndexBuild until its local build finishes. Reducing quorum trades primary completion latency against this replication-lag risk. (medium confidence) [source]
- The driver index-management specification requires a client-side error when commitQuorum is explicitly supplied against a pre-4.4 server. Its rationale identifies MongoDB 4.2.0–4.2.5 accepting the option because of SERVER-47193, so successful parsing is not proof of supported behavior. (low confidence) [source]
Comparisons and alternatives
- A missing required voter can leave an index build waiting rather than reject it. Percona reproduced this with one unavailable secondary in a three-member replica set; majority allowed completion with the two available members. (medium confidence) [source]
- Reaching quorum does not guarantee successful creation: the primary still checks remaining index constraints and emits abortIndexBuild on failure rather than commitIndexBuild. (low confidence) [source]
Facts and statements
- commitQuorum controls the readiness threshold, including the primary, before a simultaneous index build commits. The default votingMembers requires all data-bearing voting members; lowering the threshold does not select which members start building. (high confidence) [source]
- Commit quorum and write concern govern different stages. The former gates primary commit readiness; MongoDB 8.0 changed the latter to acknowledge replication of the index-build oplog entry, whereas earlier releases waited for the requested nodes to finish building. (medium confidence) [source]
- SERVER-56976 records a bug where a waiting build ignored setIndexCommitQuorum updates, including after an incomplete rolling build left one secondary with an existing index. The ticket lists fixes in 4.4.7, 5.0.0-rc0 and 5.1.0-rc0. (low confidence) (verified as of 2023-10-29) [source]
- FerretDB's versioned v1.24 compatibility matrix marks setIndexCommitQuorum unsupported. MongoDB-protocol compatibility therefore does not by itself establish support for this command; this finding is limited to that versioned matrix. (low confidence) (verified as of 2026-02-07) [source]
- The MongoDB development-branch design describes primary-driven index builds for which commit quorum does not apply. This branch description does not establish availability or defaults in a released server version. (low confidence) [source]
- An unavailable data-bearing voting member can leave a valid default-quorum build waiting. Percona's three-member experiment showed the build completing after the unavailable member returned; waiting alone is not evidence of command rejection. (medium confidence) [source]
- commitQuorum belongs at command level in createIndexes alongside indexes; mongosh db.collection.createIndexes(keyPatterns, options, commitQuorum) exposes it as a separate argument. (medium confidence) [source]
- Commit quorum readiness and write concern acknowledgment serve different purposes; satisfying quorum alone does not establish durability or guarantee every secondary's index is ready. (high confidence) [source]
Children
- Commit readiness versus write acknowledgment (frontier)
- Quorum waits caused by unavailable replica-set members (frontier)
- Commit quorum validation and disabled quorum (frontier)
- Version-specific quorum update defects (frontier)
- Commit quorum validation and unsatisfiable quorum errors (frontier)
- Index-build readiness versus write concern acknowledgment (frontier)
- In-progress index builder identity and indexNames grouping (frontier)
Frontier under this node: Commit quorum validation and disabled quorum, Commit quorum validation and unsatisfiable quorum errors, Commit readiness versus write acknowledgment, In-progress index builder identity and indexNames grouping, Index-build readiness versus write concern acknowledgment, Quorum waits caused by unavailable replica-set members, Version-specific quorum update defects