-
Notifications
You must be signed in to change notification settings - Fork 2.1k
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
Long Term Storage Improvements [Tracking Issue] #1705
Comments
Tried and rejected:
|
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. |
Not stale, very much a work in progress. |
This issue/PR has been automatically marked as stale because it has not had recent activity. Please comment on status otherwise the issue will be closed in a week. Thank you for your contributions. |
Let's close it. It was super not useful. Lesson learned. (: Milestones and separate issues works much better. |
This is the "index" issue to help to track issues, initiatives, and ideas to try that might improve the usage of long term storage of metrics for both read and storage part. It currently works, but there are many things we can improve. The goal of this ticket is to be more clear and give some overview of what’s happening and compare other potential improvement ideas! Targetted mostly to contributors who want to help us with some challenging problems.
Overall we want to encourage more collaboration and contributions on this! So please jump on anything interesting and propose new ideas! (:
Let's keep the discussions about each idea in separate GitHub issue, if no GitHub issue is created, please create one and link it here if it relates to the problems we want to solve! I will try to have this issue updated once we progress.
Store Gateway Syncing Blocks.
Things to improve
Overview
Click to see the current logic
The syncing might be the most impactful during startup, especially with empty local store Gateway directory, however, it is also performed every 3m minutes interval (which is configurable by flag). This means that any improvements in syncing will improve both startup and overall baseline memory used.
The main goal of the block sync process is to allow Store Gateway to access the data in the form of blocks from object storage and allow returning it to Querier on
Series
gRPC request. The process looks as follows:The mentioned index-cache.json (index-header) holds block’s:
Initiatives/Ideas
Querying
Things to improve
Overview
Click to see the current logic
So how the querying works in Thanos? The query is delivered through different components (top down):
Important facts:
GetRange
fetches for the same index file into bigger requests to avoid rate limiting. This blocks a bit of streaming of fetching series, postings due to partitioning.We currently don't cache anything on a disk other than index-cache.json mentioned in the Sync section.
Initiatives/Ideas
Testability/Observability
Initiatives/Ideas
Stability/Maintainability
Initiatives/Ideas
Downsampling
Things to improve
Initiatives/Ideas
The text was updated successfully, but these errors were encountered: