Hybrid index builds only record duplicate key conflicts in a side table for later resolution. With simultaneous index builds, both primary and secondary need to record conflicts in case the secondary becomes primary, so it becomes responsible for constraint checking.
Today, secondaries also ignore other types of indexing errors to maintain idempotency, and they can guarantee errors will be resolved because the primary cannot send the "createIndexes" oplog entry unless they are.
With simultaneous indexes, secondaries cannot ignore indexing errors and must also record conflicts in a side table because if a secondary becomes primary, it needs to guarantee that all indexing errors are resolved.
- duplicates
-
SERVER-45351 Newly-elected primaries can commit index builds with inconsistencies due to ignoring indexing errors as secondary
- Closed
- related to
-
SERVER-44393 indexu.js fails in replica_set_passthrough when two phase index builds are enabled
- Closed