Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Inhibit executing a query asap for 5 minutes if the same query was rejected due to busting limits #7340

Closed
krajorama opened this issue Feb 8, 2024 · 2 comments · Fixed by #9028
Assignees

Comments

@krajorama
Copy link
Contributor

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

If a query loads too much data (chunks/samples/series) and we rejected, nothing stops the user from issuing the same query again right away. This is not a good strategy as we can be reasonably sure that we cannot execute the query a second time around and generate useless load.

Describe the solution you'd like

Reject repeated queries as soon as possible for 5 minutes if the query failed due to limits and has the same query and same/similar time range.

Describe alternatives you've considered

N/A

Additional context

N/A

@56quarters
Copy link
Contributor

Sounds like negative caching for the results cache in the query-frontend.

@johannaratliff johannaratliff self-assigned this May 3, 2024
@pracucci
Copy link
Collaborator

Looks a duplicate of #2676.

56quarters added a commit that referenced this issue Aug 16, 2024
Create a new query-frontend middleware that caches errors returned by
queries if they are non-transient and will fail again if executed again.
This allows us to save work when running a query that hits, e.g., a limit
error: running the query again will not help and is a waste of work.

See #2676

See #7340
56quarters added a commit that referenced this issue Aug 16, 2024
Create a new query-frontend middleware that caches errors returned by
queries if they are non-transient and will fail again if executed again.
This allows us to save work when running a query that hits, e.g., a limit
error: running the query again will not help and is a waste of work.

See #2676

See #7340
56quarters added a commit that referenced this issue Sep 18, 2024
Create a new query-frontend middleware that caches errors returned by
queries if they are non-transient and will fail again if executed again.
This allows us to save work when running a query that hits, e.g., a limit
error: running the query again will not help and is a waste of work.

See #2676

See #7340

Signed-off-by: Nick Pillitteri <[email protected]>
56quarters added a commit that referenced this issue Sep 18, 2024
Create a new query-frontend middleware that caches errors returned by
queries if they are non-transient and will fail again if executed again.
This allows us to save work when running a query that hits, e.g., a limit
error: running the query again will not help and is a waste of work.

See #2676

See #7340

Signed-off-by: Nick Pillitteri <[email protected]>
56quarters added a commit that referenced this issue Sep 18, 2024
Create a new query-frontend middleware that caches errors returned by
queries if they are non-transient and will fail again if executed again.
This allows us to save work when running a query that hits, e.g., a limit
error: running the query again will not help and is a waste of work.

See #2676

See #7340

Signed-off-by: Nick Pillitteri <[email protected]>
56quarters added a commit that referenced this issue Sep 18, 2024
Create a new query-frontend middleware that caches errors returned by
queries if they are non-transient and will fail again if executed again.
This allows us to save work when running a query that hits, e.g., a limit
error: running the query again will not help and is a waste of work.

See #2676

See #7340

Signed-off-by: Nick Pillitteri <[email protected]>
56quarters added a commit that referenced this issue Sep 25, 2024
Create a new query-frontend middleware that caches errors returned by
queries if they are non-transient and will fail again if executed again.
This allows us to save work when running a query that hits, e.g., a limit
error: running the query again will not help and is a waste of work.

See #2676

See #7340

Signed-off-by: Nick Pillitteri <[email protected]>
56quarters added a commit that referenced this issue Sep 25, 2024
* Cache non-transient error responses from the query-frontend

Create a new query-frontend middleware that caches errors returned by
queries if they are non-transient and will fail again if executed again.
This allows us to save work when running a query that hits, e.g., a limit
error: running the query again will not help and is a waste of work.

See #2676

See #7340

Signed-off-by: Nick Pillitteri <[email protected]>

* Set default value for TTL option correctly

Signed-off-by: Nick Pillitteri <[email protected]>

* Code review changes

Signed-off-by: Nick Pillitteri <[email protected]>

---------

Signed-off-by: Nick Pillitteri <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants