prometheus/tsdb
Oleg Zaytsev cd1f8ac129
Some checks failed
buf.build / lint and publish (push) Has been cancelled
CI / Go tests (push) Has been cancelled
CI / More Go tests (push) Has been cancelled
CI / Go tests with previous Go version (push) Has been cancelled
CI / UI tests (push) Has been cancelled
CI / Go tests on Windows (push) Has been cancelled
CI / Mixins tests (push) Has been cancelled
CI / Build Prometheus for common architectures (0) (push) Has been cancelled
CI / Build Prometheus for common architectures (1) (push) Has been cancelled
CI / Build Prometheus for common architectures (2) (push) Has been cancelled
CI / Build Prometheus for all architectures (0) (push) Has been cancelled
CI / Build Prometheus for all architectures (1) (push) Has been cancelled
CI / Build Prometheus for all architectures (10) (push) Has been cancelled
CI / Build Prometheus for all architectures (11) (push) Has been cancelled
CI / Build Prometheus for all architectures (2) (push) Has been cancelled
CI / Build Prometheus for all architectures (3) (push) Has been cancelled
CI / Build Prometheus for all architectures (4) (push) Has been cancelled
CI / Build Prometheus for all architectures (5) (push) Has been cancelled
CI / Build Prometheus for all architectures (6) (push) Has been cancelled
CI / Build Prometheus for all architectures (7) (push) Has been cancelled
CI / Build Prometheus for all architectures (8) (push) Has been cancelled
CI / Build Prometheus for all architectures (9) (push) Has been cancelled
CI / Check generated parser (push) Has been cancelled
CI / golangci-lint (push) Has been cancelled
CI / fuzzing (push) Has been cancelled
CI / codeql (push) Has been cancelled
Scorecards supply-chain security / Scorecards analysis (push) Has been cancelled
CI / Report status of build Prometheus for all architectures (push) Has been cancelled
CI / Publish main branch artifacts (push) Has been cancelled
CI / Publish release artefacts (push) Has been cancelled
CI / Publish UI on npm Registry (push) Has been cancelled
MemPostings: keep a map of label values slices (#15426)
While investigating lock contention on `MemPostings`, we saw that lots
of locking is happening in `LabelValues` and
`PostingsForLabelsMatching`, both copying the label values slices while
holding the mutex.

This adds an extra map that holds an append-only label values slice for
each one of the label names. Since the slice is append-only, it can be
copied without holding the mutex.

Signed-off-by: Oleg Zaytsev <mail@olegzaytsev.com>
2024-11-29 12:52:56 +01:00
..
agent Agent: allow for ingestion of CT samples (#15124) 2024-10-27 01:06:34 +01:00
chunkenc tsdb/chunkenc: don't reuse custom value slices between histograms 2024-11-29 16:28:09 +11:00
chunks enable errorf rule from perfsprint linter 2024-11-06 16:50:36 +01:00
docs [DOCS] Improve description of WAL record format (#14936) 2024-11-26 11:48:17 +00:00
encoding
errors
fileutil
goversion
index MemPostings: keep a map of label values slices (#15426) 2024-11-29 12:52:56 +01:00
record
testdata
tombstones chore!: adopt log/slog, remove go-kit/log 2024-10-07 15:58:50 -04:00
tsdbutil chore!: adopt log/slog, remove go-kit/log 2024-10-07 15:58:50 -04:00
wlog [TESTS] Remote-Write: Fix BenchmarkStartup 2024-11-15 11:22:07 +00:00
.gitignore
block.go [PERF] TSDB: Optimize inverse matching (#14144) 2024-11-19 15:49:01 +00:00
block_test.go feat: Allow customizing TSDB postings decoder (#13567) 2024-11-11 07:59:24 +01:00
blockwriter.go chore!: adopt log/slog, remove go-kit/log 2024-10-07 15:58:50 -04:00
blockwriter_test.go feat: Allow customizing TSDB postings decoder (#13567) 2024-11-11 07:59:24 +01:00
CHANGELOG.md
compact.go Merge pull request #14489 from harry671003/implement_metadata_limit 2024-11-19 17:32:16 +01:00
compact_test.go feat: Allow customizing TSDB postings decoder (#13567) 2024-11-11 07:59:24 +01:00
db.go feat: Allow customizing TSDB postings decoder (#13567) 2024-11-11 07:59:24 +01:00
db_test.go Always return unknown hint for first sample in non-gauge histogram chunk (#15343) 2024-11-12 15:14:06 +01:00
example_test.go
exemplar.go tsdb.CircularExemplarStorage: Avoid racing (#15231) 2024-10-29 10:40:46 +01:00
exemplar_test.go tsdb.CircularExemplarStorage: Avoid racing (#15231) 2024-10-29 10:40:46 +01:00
head.go Agent: allow for ingestion of CT samples (#15124) 2024-10-27 01:06:34 +01:00
head_append.go [BUGFIX] TSDB: Fix race on stale values in headAppender (#15322) 2024-11-06 16:51:39 +01:00
head_bench_test.go Revert "Fix MemPostings.Add and MemPostings.Get data race (#15141)" 2024-11-03 12:30:34 +00:00
head_dedupelabels.go chore!: adopt log/slog, remove go-kit/log 2024-10-07 15:58:50 -04:00
head_other.go chore!: adopt log/slog, remove go-kit/log 2024-10-07 15:58:50 -04:00
head_read.go [PERF] TSDB: Optimize inverse matching (#14144) 2024-11-19 15:49:01 +00:00
head_read_test.go
head_test.go Always return unknown hint for first sample in non-gauge histogram chunk (#15343) 2024-11-12 15:14:06 +01:00
head_wal.go [BUGFIX] TSDB: Apply fixes from loadWAL to loadWBL 2024-11-11 18:41:33 +00:00
isolation.go
isolation_test.go
mocks_test.go
ooo_head.go
ooo_head_read.go [PERF] TSDB: Optimize inverse matching (#14144) 2024-11-19 15:49:01 +00:00
ooo_head_read_test.go enable errorf rule from perfsprint linter 2024-11-06 16:50:36 +01:00
ooo_head_test.go Always return unknown hint for first sample in non-gauge histogram chunk (#15343) 2024-11-12 15:14:06 +01:00
ooo_isolation.go
ooo_isolation_test.go
querier.go Optimize l=~".+" matcher (#15474) 2024-11-27 12:33:20 +01:00
querier_bench_test.go feat: Allow customizing TSDB postings decoder (#13567) 2024-11-11 07:59:24 +01:00
querier_test.go Merge pull request #14489 from harry671003/implement_metadata_limit 2024-11-19 17:32:16 +01:00
README.md
repair.go chore!: adopt log/slog, remove go-kit/log 2024-10-07 15:58:50 -04:00
repair_test.go feat: Allow customizing TSDB postings decoder (#13567) 2024-11-11 07:59:24 +01:00
testutil.go Always return unknown hint for first sample in non-gauge histogram chunk (#15343) 2024-11-12 15:14:06 +01:00
tsdbblockutil.go enable errorf rule from perfsprint linter 2024-11-06 16:50:36 +01:00

TSDB

GoPkg

This directory contains the Prometheus TSDB (Time Series DataBase) library, which handles storage and querying of all Prometheus v2 data.

Documentation

External resources

A series of blog posts explaining different components of TSDB: