Add option to query minimum set of ingesters #5202
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What this PR does
This PR adds experimental support for querying the minimal set of ingesters required to reach quorum.
With
-querier.minimize-ingester-requests=false
(the default), queriers behave as they do today: they send a request to all ingesters in the tenant's shard, wait until quorum is reached and then cancel any outstanding unnecessary requests.With
-querier.minimize-ingester-requests=true
, queriers instead initially only send requests to the minimum number of ingesters required to reach quorum, and initiate requests to further ingesters if any of the initial requests fail. (If enough requests fail that quorum is impossible, all requests are cancelled as before, and no further requests are made.)This reduces querier and ingester resource utilisation on the happy path, at the cost of increased latency on the unhappy path where one or more ingesters return an error, fail to respond, or respond slowly.
Which issue(s) this PR fixes or relates to
DoUntilQuorum
to optionally only send the minimum number of requests required to reach quorum dskit#306Checklist
CHANGELOG.md
updated - the order of entries should be[CHANGE]
,[FEATURE]
,[ENHANCEMENT]
,[BUGFIX]