-
Notifications
You must be signed in to change notification settings - Fork 3.8k
Description
Currently, the broker-side cache operates in bulk: it uses the getBulk API, and timeouts apply to the entire bulk get. But the historical-side cache operates on one segment at a time: it uses the get API, and timeouts apply to each cache fetch.
This is fine for local caches, but it's bad for remote caches (like memcached) because it means the historical is not efficient at pulling from them (due to the lack of bulk get) and can grind to a halt when memcached is unreachable (due to the timeout being applied to each segment, and a query potentially hitting many segments, in which case the timeout stacks up).
For many users, switching to broker-side caching is not a good option, since it forces the broker to retrieve and merge results from every individual segment, and doesn't scale well. So ideally we should improve the historical-side caching.