We have very hugh cluster implementation (1.7.5) , we basically have 2 different work loads in our cluster
- Simple and short queries
- Massive aggregations
As we don't have native routing key , when query is executed most of the nodes are taking part of the execution . We have problem when the aggregations are running they basically allocate search threads for more time then the Simple and short queries and we finally go into a state that our "Simple and short queries " are waiting for search threads , this finally impact the latency of the "Simple and short queries"
Such problem can be address simply if i will able to allocate X search thread from the pool to aggregations and 3X for the Simple and short queries .
Any idea it this is doable in elastic ?
ES uses internally thread-pools but you cannot assign load based on that - or rather you can but one would have to write code for it so internally things get dispatched differently...
More information about thread-pools can be found here - I'm point the cat API since it's nice to get information right away.
Even if handle requests from different TP, those would have to be pushed down to all nodes so busy nodes with aggs would have spare resources for simple queries...
You could separate data by using allocation awareness for example but if you want aggs and queries to run against the same data, I'm afraid there's no thread-pool differentiator (at least that that I'm aware of).
This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.