Throttling search requests

  1. What is the best practice to throttle search requests? Does Elasticsearch provide any configurations to throttle search requests?

  2. Is there a way to prioritize different types of queries (e.g. prioritize search over indexing)?

  3. If throttling is available, is it specific to index, or is that a global configuration/setting?

We have load balancing via consul and I was able to find a way to throttle merge (indexing), but nothing for search. Before we write our own token bucket/throttling algorithm, wanted to check if there was something we can leverage. Thank you in advance.

None of these are possible.

Thank you. I think there is a way to deal with it, not a real throttler, but still one possible way:

Update the queue size for fixed queue based on the amount of load that you want the node to handle. This might help a bit.

Yeah, that occurred to me, but I wouldn't consider suddenly rejecting searches to be a deterministic throttle. Moreover, it very much doesn't come close to any of the criteria you detailed, and that will affect all users, all indices, all types.

Agreed. We will probably create our own throttler unless you have suggestions (if there is something opensource available in the market that other clients already use)

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.