-
Type: Improvement
-
Resolution: Duplicate
-
Priority: Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
None
-
Execution Team 2020-04-06, Execution Team 2020-04-20
-
5
The current mechanism for aborting index builds through the IndexBuildsCoordinator is to set a flag on the MultiIndexBlock.
During the index build process we check if this flag has been set a few times. For example, at the begining of each drain phases, of which there are only 3 calls.
This makes it difficult and unreliable to abort index builds because the window between aborting an index build and it actually tearing down is potentially very wide for large indexes.
In part because of the deadlock described by SERVER-44722, it would be better to actually interrupt the operation context of the index builder thread. Lock acquisitions or explicit calls to checkForInterrupt() should throw and immediately abort the index build.
- duplicates
-
SERVER-46560 Make Abort index build logic deterministic.
- Closed
- is depended on by
-
SERVER-44722 3 way deadlock can happen between hybrid index build, prepared transactions and stepdown thread on primary that runs index build via coordinator.
- Closed
- is duplicated by
-
SERVER-46012 Aborting index builders through the IndexBuildsCoordinator does not always abort the index builders
- Closed
- is related to
-
SERVER-39976 Two-phase index builds on primaries should ignore interrupts
- Closed
- related to
-
SERVER-46595 createIndexes command fails to abort index build when interrupted
- Closed
-
SERVER-46012 Aborting index builders through the IndexBuildsCoordinator does not always abort the index builders
- Closed