store/proxy: Deduplicate chunks on StoreAPI level. Recommend chunk sorting for StoreAPI + Optimized iter chunk dedup. (#2710)#2711
Merged
brancz merged 1 commit intorelease-0.13from Jun 4, 2020
Conversation
…rting for StoreAPI + Optimized iter chunk dedup. (#2710) * Deduplicate chunk dups on proxy StoreAPI level. Recommend chunk sorting for StoreAPI. Also: Merge same series together on proxy level instead select. This allows better dedup efficiency. Partially fixes: #2303 Cases like overlapped data from store and sidecar and 1:1 duplicates are optimized as soon as it's possible. This case was highly visible on GitLab repro data and exists in most of Thanos setup. Signed-off-by: Bartlomiej Plotka <bwplotka@gmail.com> * Optimized algorithm to combine series only on start. Signed-off-by: Bartlomiej Plotka <bwplotka@gmail.com> * Optimized chunk comparision for overlaps. Signed-off-by: Bartlomiej Plotka <bwplotka@gmail.com> * Optimized deduplication for deduplicated chunk on query level as well. Never use proto .String() in fast path! Signed-off-by: Bartlomiej Plotka <bwplotka@gmail.com> # Conflicts: # CHANGELOG.md # pkg/store/storepb/custom.go # pkg/store/storepb/custom_test.go
6fe32d8 to
86aed20
Compare
brancz
approved these changes
Jun 4, 2020
Member
Author
Contributor
What does |
Member
|
Basically it runs heavy analytical queries against any Prometheus API endpoint. |
paulfantom
added a commit
to paulfantom/thanos
that referenced
this pull request
Jul 8, 2020
openshift/master * upstream/release-0.13: Cut release v0.13.0 shipper: Be strict about upload order unless it's specified so & cut v0.13.0-rc.2 (thanos-io#2765) Cut 0.13.0 release. (thanos-io#2762) Cut release 0.13.0-rc.1 (thanos-io#2720) Store: `irate` and `resets` use now counter downsampling aggregations. (thanos-io#2719) deps: Updated minio-go dependency to v6.0.56 to add two region endpoints (thanos-io#2705) (thanos-io#2718) store/proxy: Deduplicate chunks on StoreAPI level. Recommend chunk sorting for StoreAPI + Optimized iter chunk dedup. (thanos-io#2710) (thanos-io#2711) Allow using multiple memcached clients at the same time. (thanos-io#2648) (thanos-io#2698) Updated Prometheus as little as possible to include Isolation fix. (thanos-io#2697) Release fix attempt2. Fixed test job. (thanos-io#2650) Fixed promu build to build in compatible directory that crossbuild understands. Cut v0.13.0-rc.0 (thanos-io#2628)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.

Cherry picked: #2710
Also: Merge same series together on proxy level instead select. This allows better dedup efficiency.
Partially fixes: #2303
Cases like overlapped data from store and sidecar and 1:1 duplicates are optimized as soon as it's possible.
This case was highly visible on GitLab repro data and exists in most of Thanos setup.
Signed-off-by: Bartlomiej Plotka bwplotka@gmail.com
Signed-off-by: Bartlomiej Plotka bwplotka@gmail.com
Signed-off-by: Bartlomiej Plotka bwplotka@gmail.com
Never use proto .String() in fast path!
Signed-off-by: Bartlomiej Plotka bwplotka@gmail.com