Heya All,
Like everybody (I think) we have an elastic cluster with multiple indexes. Also like most people, some indexes need to have good consistent response times for searching, while others can be much slower.
If you have a big cluster with more than 3 nodes then I see how the hot warm architecture helps with this - basically you just allocate the slow indexes and searches (using the query preference parameter) to the nodes with slow disks, and you allocate the higher performance searches to the high performance nodes severing up your indexes with the high performance requirements.
But lets say you just have three data nodes and you have one small index that has to be as fast as possible for requests for specific resources like this https://<hostname>:<port>/<index>/_doc/<documentId>/_source
(like < 10ms) - serving up these resources is the main purpose of the website, and three larger indexes that support complex searches and can be as slow as 10 seconds to complete a request.
What would be the best way to support this type of requirement. I have increased the index query cache size to 20%. And disabled index query caching on the other indexes (that don't have a high performance requirement). What are the other ways to allocate more resources and caching to one index in a cluster.
On a related note - can you confirm if "search" requests in this format https://<hostname>:<port>/<index>/_doc/<documentId>/_source
fall into the filter context and therefore get cached in the Node Query Cache. I think they do - however I would love somebody to confirm please.