prometheus/storage
Marco Pracucci 501bc6419e
Add ShardedPostings() support to TSDB (#10421)
This PR is a reference implementation of the proposal described in #10420.

In addition to what described in #10420, in this PR I've introduced labels.StableHash(). The idea is to offer an hashing function which doesn't change over time, and that's used by query sharding in order to get a stable behaviour over time. The implementation of labels.StableHash() is the hashing function used by Prometheus before stringlabels, and what's used by Grafana Mimir for query sharding (because built before stringlabels was a thing).

Follow up work
As mentioned in #10420, if this PR is accepted I'm also open to upload another foundamental piece used by Grafana Mimir query sharding to accelerate the query execution: an optional, configurable and fast in-memory cache for the series hashes.

Signed-off-by: Marco Pracucci <marco@pracucci.com>
2024-01-29 11:57:27 +00:00
..
remote Merge pull request #13464 from aknuds1/arve/fix-update-copy 2024-01-26 17:52:49 +05:30
buffer.go Optimize histogram iterators (#13340) 2024-01-23 17:02:14 +01:00
buffer_test.go Optimize histogram iterators (#13340) 2024-01-23 17:02:14 +01:00
fanout.go storage: skip merging when no remote storage configured 2024-01-18 17:50:06 +00:00
fanout_test.go golangci-lint: enable testifylint linter (#13254) 2023-12-07 11:35:01 +00:00
generic.go Add warnings (and annotations) to PromQL query results (#12152) 2023-09-14 18:57:31 +02:00
interface.go Add ShardedPostings() support to TSDB (#10421) 2024-01-29 11:57:27 +00:00
lazy.go Add warnings (and annotations) to PromQL query results (#12152) 2023-09-14 18:57:31 +02:00
memoized_iterator.go Optimize histogram iterators (#13340) 2024-01-23 17:02:14 +01:00
memoized_iterator_test.go golangci-lint: enable testifylint linter (#13254) 2023-12-07 11:35:01 +00:00
merge.go Optimize histogram iterators (#13340) 2024-01-23 17:02:14 +01:00
merge_test.go Optimize histogram iterators (#13340) 2024-01-23 17:02:14 +01:00
noop.go Add warnings (and annotations) to PromQL query results (#12152) 2023-09-14 18:57:31 +02:00
secondary.go Add warnings (and annotations) to PromQL query results (#12152) 2023-09-14 18:57:31 +02:00
series.go Optimize histogram iterators (#13340) 2024-01-23 17:02:14 +01:00
series_test.go golangci-lint: enable testifylint linter (#13254) 2023-12-07 11:35:01 +00:00