mirror of
https://github.com/prometheus/prometheus
synced 2024-12-27 09:02:53 +00:00
501bc6419e
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> |
||
---|---|---|
.. | ||
agent | ||
chunkenc | ||
chunks | ||
docs | ||
encoding | ||
errors | ||
fileutil | ||
goversion | ||
index | ||
record | ||
testdata | ||
tombstones | ||
tsdbutil | ||
wlog | ||
.gitignore | ||
block_test.go | ||
block.go | ||
blockwriter_test.go | ||
blockwriter.go | ||
CHANGELOG.md | ||
compact_test.go | ||
compact.go | ||
db_test.go | ||
db.go | ||
example_test.go | ||
exemplar_test.go | ||
exemplar.go | ||
head_append.go | ||
head_bench_test.go | ||
head_read_test.go | ||
head_read.go | ||
head_test.go | ||
head_wal.go | ||
head.go | ||
isolation_test.go | ||
isolation.go | ||
mocks_test.go | ||
ooo_head_read_test.go | ||
ooo_head_read.go | ||
ooo_head_test.go | ||
ooo_head.go | ||
ooo_isolation_test.go | ||
ooo_isolation.go | ||
querier_bench_test.go | ||
querier_test.go | ||
querier.go | ||
README.md | ||
repair_test.go | ||
repair.go | ||
tsdbblockutil.go | ||
wal_test.go | ||
wal.go |
TSDB
This directory contains the Prometheus TSDB (Time Series DataBase) library, which handles storage and querying of all Prometheus v2 data.
Documentation
External resources
- A writeup of the original design can be found here.
- Video: Storing 16 Bytes at Scale from PromCon 2017.
- Compression is based on the Gorilla TSDB white paper.
A series of blog posts explaining different components of TSDB: