-
Notifications
You must be signed in to change notification settings - Fork 3.5k
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
Optimize SHOW SERIES #6533
Optimize SHOW SERIES #6533
Conversation
By analyzing the blame information on this pull request, we identified @e-dard and @mark-rushakoff to be potential reviewers |
|
I see about a 25% improvement locally. Number of shards still significantly impacts performance though. LGTM though. |
@jwilder I'm removing the heap because I don't think it's helping. I'm doing some tests on the large shard set to see if deferring the series fetching will help. I'll push up the changes in a bit once I get some numbers. |
5e223e8
to
25d364b
Compare
@jwilder I was able to get the 140 shards w/ 1M series down to 5m and memory usage is around 6GB in the latest commit (25d364b). All tests passing. Ready for review. |
25d364b
to
593da6b
Compare
dst = append(dst, m.seriesByID[id].Key) | ||
} | ||
return dst | ||
} |
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.
This function was added because we were previously locking and unlocking for every single series access. This batches it all together and allows us to reuse the buffer.
d90c0f0
to
badc884
Compare
👍 on green. |
badc884
to
a080699
Compare
This commit changes the `SeriesIterator` to process one measurement at a time and uses a `floatFastDedupeIterator` to avoid point encoding during deduplication.
a080699
to
49eb3b8
Compare
Overview
This commit changes the
SeriesIterator
to use a heap for sorting and uses afloatFastDedupeIterator
to avoid point encoding while deduplication.Required for all non-trivial PRs