Fork CCS remote-cluster responses#98124
Conversation
Today during CCS we process responses from remote clusters on the transport worker thread, but that's not the right place for this work. This commit moves it to the `SEARCH_COORDINATION` pool. Closes elastic#97997
|
Pinging @elastic/es-search (Team:Search) |
|
Hi @DaveCTurner, I've created a changelog YAML for you. |
|
I did a little ad-hoc testing of this change one of my CCS branches in progress and it seemed the same as before based on my limited testing of it (e.g., I'm currently dealing with a strange async-search CCS race condition and it happens on both I don't know a lot about ES threadpool details. Are there any limitations or considerations I should be aware of that this |
We have to be very careful about what we run on the transport pool. We still use it far too much, with cluster-destroying consequences sometimes, although these days it's not as bad as it used to be. A lot of the places we use it are because historically this has been the default choice, but it's a really bad default choice: we really should default to another pool unless there's very good reasons to keep work on the transport pool. CCS responses in particular can be too large to reasonably process on the transport worker, and CCS has enough latency that we can afford a few µs of forking overhead, and I believe if In contrast the |
Similar to elastic#98124, this action involves doing potentially O(#shards) work on both sender and receiver so it'd be best to avoid the transport worker.
Similar to #98124, this action involves doing potentially O(#shards) work on both sender and receiver so it'd be best to avoid the transport worker.
Today during CCS we process responses from remote clusters on the
transport worker thread, but that's not the right place for this work.
This commit moves it to the
SEARCH_COORDINATIONpool.Closes #97997