Use direct executor for DrillSideways tasks #651
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
DrillSideways
takes anExecutorService
, which it used to enqueue drill down sub tasks during search. We are currently passing the search thread pool.Since both
DrillSideways
and parallel search use the same thread pool, there is an execution dependency that can lead to deadlock. This can happen when a burst of requests fill the search thread pool will justDrillSideways
task, preventing spawned search tasks from running.This branch uses a direct executor to run the
DrillSideways
tasks in the calling thread (grpc thread). Since we never add any additional drill downs to the query, there will be only oneDrillSideways
task.