-
Notifications
You must be signed in to change notification settings - Fork 25k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Avoid execute ESQL planning on refresh thread #104591
Conversation
Hi @dnhatn, I've created a changelog YAML for you. |
@@ -585,6 +594,7 @@ public void messageReceived(DataNodeRequest request, TransportChannel channel, T | |||
configuration, | |||
request.aliasFilters(), | |||
ActionListener.wrap(searchContexts -> { | |||
assert ThreadPool.assertCurrentThreadPool(ESQL_THREAD_POOL_NAME); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Without the fix, the test EsqlActionIT#testRefreshSearchIdleShards
trips this assertion .
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍
Pinging @elastic/es-analytical-engine (Team:Analytics) |
@@ -585,6 +594,7 @@ public void messageReceived(DataNodeRequest request, TransportChannel channel, T | |||
configuration, | |||
request.aliasFilters(), | |||
ActionListener.wrap(searchContexts -> { | |||
assert ThreadPool.assertCurrentThreadPool(ESQL_THREAD_POOL_NAME); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍
Thanks, Nik! |
Backported to 8.12 in #104773 |
A recent report shows that we can perform ESQL planning on the refresh thread pool after waiting for refreshes from search-idle shards. While the planning process is generally lightweight, it may become expensive at times. Therefore, we should fork off the refresh thread pool immediately upon resuming ESQL execution. Another place where we should fork off is after field_caps. I will look into that later.
A recent report shows that we can perform ESQL planning on the refresh thread pool after waiting for refreshes from search-idle shards. While the planning process is generally lightweight, it may become expensive at times. Therefore, we should fork off the refresh thread pool immediately upon resuming ESQL execution. Another place where we should fork off is after field_caps. I will look into that later.
A recent report shows that we can perform ESQL planning on the refresh thread pool after waiting for refreshes from search-idle shards. While the planning process is generally lightweight, it may become expensive at times. Therefore, we should fork off the refresh thread pool immediately upon resuming ESQL execution. Another place where we should fork off is after field_caps. I will look into that later.
A recent report shows that we can perform ESQL planning on the refresh thread pool after waiting for refreshes from search-idle shards. While the planning process is generally lightweight, it may become expensive at times. Therefore, we should fork off the refresh thread pool immediately upon resuming ESQL execution. Another place where we should fork off is after field_caps. I will look into that later.