-
Type:
Improvement
-
Resolution: Fixed
-
Priority:
Major - P3
-
Affects Version/s: None
-
Component/s: Query Execution
-
None
-
Query Execution
-
Fully Compatible
-
QE 2025-03-31, QE 2025-04-14
-
None
-
3
-
None
-
None
-
None
-
None
-
None
-
None
We've introduced ExpressionContext::checkForInterrupt() to throttle the actual checks for interrupt on every DocumentSource::getNext(), because they are expensive.
The ExpressionContext::checkForInterrupt() uses ExpressionContext::_interruptCounter as a throttling frequency counter that is shared by all stages of the pipeline.
In the context of separating query execution and query optimization (e.g., SPM-4106) we might reconsider this design and count the frequency either per stage or introduce another class, for instance, StageInterruptThrottler, shared by all pipeline stages to refactor this functionality from already-overloaded ExpressionContext.