<!-- llms-explorer concept facts · https://llms-explorer.com/tree/index-build-commit-quorum-commitquorum-and-setindexcommitquorum/ · pack 2026-10-31 · ~1389 tokens -->

# Index build commit quorum (commitQuorum and setIndexCommitQuorum)

> Source-anchored research for Index build commit quorum (commitQuorum and setIndexCommitQuorum). Run status: COMPLETED.

Parent: [Rolling index builds](https://llms-explorer.com/tree/rolling-index-builds/) · 4 facets · 15 facts · page: https://llms-explorer.com/tree/index-build-commit-quorum-commitquorum-and-setindexcommitquorum/

## 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](https://www.mongodb.com/docs/manual/reference/command/setIndexCommitQuorum.md)

## 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](https://www.mongodb.com/docs/manual/reference/command/setIndexCommitQuorum.md)
- 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](https://www.mongodb.com/docs/manual/reference/command/createIndexes.md)
- 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](https://www.mongodb.com/docs/manual/reference/command/setIndexCommitQuorum.md)
- 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](https://github.com/mongodb/specifications/blob/master/source/index-management/index-management.md)

## 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](https://www.percona.com/blog/commitquorum-in-index-creation-from-percona-server-for-mongodb-4-4/)
- 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](https://github.com/mongodb/mongo/blob/master/src/mongo/db/index_builds/README.md)

## 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](https://www.mongodb.com/docs/manual/reference/command/createIndexes.md)
- 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](https://www.mongodb.com/docs/manual/reference/command/createIndexes.md)
- 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](https://jira.mongodb.org/browse/SERVER-56976)
- 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](https://docs.ferretdb.io/v1.24/reference/supported-commands/)
- 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](https://github.com/mongodb/mongo/blob/master/src/mongo/db/index_builds/README.md)
- 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](https://www.mongodb.com/docs/manual/reference/command/createIndexes.md)
- 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](https://www.mongodb.com/docs/manual/reference/command/createIndexes.md)
- 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](https://www.mongodb.com/docs/manual/reference/command/setIndexCommitQuorum.md)
