[SERVER-39428] Record all indexing errors during simultaneous index builds for later constraint checking Created: 07/Feb/19  Updated: 06/Dec/22  Resolved: 23/Jan/20

Status: Closed
Project: Core Server
Component/s: Storage
Affects Version/s: None
Fix Version/s: None

Type: Improvement Priority: Major - P3
Reporter: Louis Williams Assignee: Backlog - Storage Execution Team
Resolution: Duplicate Votes: 0
Labels: techdebt
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Duplicate
duplicates SERVER-45351 Newly-elected primaries can commit in... Closed
Related
related to SERVER-44393 indexu.js fails in replica_set_passth... Closed
Assigned Teams:
Storage Execution
Participants:
Story Points: 8

 Description   

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.


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