Skip to content

Historical cache should operate in bulk #5796

@gianm

Description

@gianm

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.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions