-
Notifications
You must be signed in to change notification settings - Fork 529
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
Streaming store-gateway: add iterators for loading series from index #3645
Streaming store-gateway: add iterators for loading series from index #3645
Conversation
e0dd8c9
to
e361abf
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
maxTime, | ||
) | ||
|
||
limitingIterator := newLimitingSeriesChunkRefsSetIterator( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[non blocking] openBlockSeriesChunkRefsSetsIterator()
is per block. This means that we apply the series limiter for every series and block. If the same series is queried from multiple blocks, then the series is double counted. This is the same behaviour we currently have in main
so this is not a regression, but with the streaming store-gateway we have the opportunity the limiter up the stack and to actually apply on the merged series from all blocks. We can further discuss it and eventually do it in the working branch.
9a2eb66
to
dda7f44
Compare
dda7f44
to
5d313cd
Compare
We are adding three iterators: * `loadingSeriesChunkRefsSetIterator` is responsible for loading chunks from the index * `postingsSetsIterator` is responsible for batching postings so loading series from the index doesn't load all labels and chunk refs from the index in one go * `limitingSeriesChunkRefsSetIterator` is responsible for limiting series and chunks within a request We are also adding a function to set up these three iterators for an incoming Series() request for a block. Co-authored-by: Marco Pracucci <marco@pracucci.com> Signed-off-by: Dimitar Dimitrov <dimitar.dimitrov@grafana.com>
Signed-off-by: Dimitar Dimitrov <dimitar.dimitrov@grafana.com>
5d313cd
to
808b3d8
Compare
Signed-off-by: Dimitar Dimitrov <dimitar.dimitrov@grafana.com>
808b3d8
to
6f69220
Compare
…rafana#3645) * Streaming store-gateway: add iterators for loading series from index We are adding three iterators: * `loadingSeriesChunkRefsSetIterator` is responsible for loading chunks from the index * `postingsSetsIterator` is responsible for batching postings so loading series from the index doesn't load all labels and chunk refs from the index in one go * `limitingSeriesChunkRefsSetIterator` is responsible for limiting series and chunks within a request We are also adding a function to set up these three iterators for an incoming Series() request for a block. Co-authored-by: Marco Pracucci <marco@pracucci.com> Signed-off-by: Dimitar Dimitrov <dimitar.dimitrov@grafana.com> * Update nolint directives Signed-off-by: Dimitar Dimitrov <dimitar.dimitrov@grafana.com> * Fix e2e testing interface used Signed-off-by: Dimitar Dimitrov <dimitar.dimitrov@grafana.com> Signed-off-by: Dimitar Dimitrov <dimitar.dimitrov@grafana.com> Co-authored-by: Marco Pracucci <marco@pracucci.com>
We are adding three iterators:
loadingSeriesChunkRefsSetIterator
is responsible for loading chunksfrom the index
postingsSetsIterator
is responsible for batching postings so loadingseries from the index doesn't load all labels and chunk refs from the
index in one go
limitingSeriesChunkRefsSetIterator
is responsible for limitingseries and chunks within a request
We are also adding a function to set up these three iterators for an
incoming Series() request for a block (
openBlockSeriesChunkRefsSetsIterator
).Co-authored-by: Marco Pracucci marco@pracucci.com
Signed-off-by: Dimitar Dimitrov dimitar.dimitrov@grafana.com