mimir icon indicating copy to clipboard operation
mimir copied to clipboard

Query-frontend should cache errors resulting from data

Open bboreham opened this issue 1 year ago • 0 comments

Is your feature request related to a problem? Please describe.

Suppose you have a dashboard containing a large join query which results in a many-to-many error. This dashboard is unduly expensive to run - the entire data range is re-fetched on every dashboard update but each time the same error is returned by Mimir.

Describe the solution you'd like

Query-frontend should cache data errors, similarly to how it caches empty results today. Note that join errors can come and go - if there is only 1 row returned then you won't get a many-to-many error - so we need to cache each query result in time extents, just as with sample results or empty results.

Not all query errors result from data; for example exceeding the chunk limit is something that will clear if the administrator raises the limit. Perhaps we can get round needing to know the difference by a relatively short cache expiry on errors.

Describe alternatives you've considered

Nothing.

bboreham avatar Aug 09 '22 09:08 bboreham