mimir
mimir copied to clipboard
Query-frontend should cache errors resulting from data
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.