prometheus/tsdb
Bryan Boreham cf92cd2688 tsdb: sort values for Postings only when required
In the head and in v1 postings on disk, it makes no difference whether
postings are sorted. Only for v2 does the code step through in order.
So, move the sorting to where it is required, and thus skip it entirely
in the head.

Label values in on-disk blocks are already sorted, but `slices.Sort` is
very fast on already-sorted data so we don't bother checking.

Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
2023-01-05 14:05:54 +00:00
..
agent Update package tsdb/agent for new labels.Labels type 2022-12-19 15:22:09 +00:00
chunkenc Add chunk encoding for float histogram (#11716) 2022-12-20 15:33:32 +05:30
chunks Replace sort.Strings and sort.Ints with faster slices.Sort (#11318) 2022-09-30 20:03:56 +05:30
docs Merge branch 'main' into sparsehistogram 2022-08-10 17:54:37 +02:00
encoding Merge 'main' into sparsehistogram 2022-10-05 22:14:49 +02:00
errors Address golint failures from revive 2021-10-23 00:53:11 +02:00
fileutil Update go to 1.19, set min version to 1.18 (#11279) 2022-09-07 11:30:48 +02:00
goversion Add new Go build tags. 2021-08-27 10:24:14 +02:00
index tsdb: sort values for Postings only when required 2023-01-05 14:05:54 +00:00
record Update package tsdb/record for new labels.Labels type 2022-12-19 15:22:09 +00:00
test Update package tsdb/test for new labels.Labels type 2022-12-19 15:22:09 +00:00
testdata tsdb: Delete blocks atomically; Remove tmp blocks on start; Added test. (#7772) 2020-08-11 06:56:08 +01:00
tombstones refactor: move from io/ioutil to io and os packages (#10528) 2022-04-27 11:24:36 +02:00
tsdbutil Fix merge conflicts 2022-10-11 22:53:37 +05:30
wlog Merge remote-tracking branch 'upstream/main' into fix-conflict 2022-10-12 14:20:02 +05:30
.gitignore Moving tsdb into its own subdirectory 2019-08-13 13:58:49 +05:30
block.go tsdb: sort values for Postings only when required 2023-01-05 14:05:54 +00:00
block_test.go Update package tsdb tests for new labels.Labels type 2022-12-19 15:22:09 +00:00
blockwriter.go Merge 'main' into sparsehistogram 2022-10-05 22:14:49 +02:00
blockwriter_test.go tsdb: in tests use labels.FromStrings 2022-09-09 13:34:49 +02:00
CHANGELOG.md Rename default branch to main 2021-02-22 20:28:02 +01:00
compact.go storage: allow re-use of iterators 2022-12-15 18:32:45 +00:00
compact_test.go Update package tsdb tests for new labels.Labels type 2022-12-19 15:22:09 +00:00
db.go Update package tsdb for new labels.Labels type 2022-12-19 15:22:09 +00:00
db_test.go Simplify IndexReader.Series interface 2022-12-19 15:22:09 +00:00
example_test.go storage: allow re-use of iterators 2022-12-15 18:32:45 +00:00
exemplar.go Update package tsdb for new labels.Labels type 2022-12-19 15:22:09 +00:00
exemplar_test.go tsdb: in tests use labels.FromStrings 2022-09-09 13:34:49 +02:00
head.go Fix alignment of atomic int64 (#11547) 2022-11-09 11:18:49 +01:00
head_append.go Update package tsdb for new labels.Labels type 2022-12-19 15:22:09 +00:00
head_bench_test.go Add out-of-order sample support to the TSDB (#11075) 2022-09-20 22:35:50 +05:30
head_read.go Simplify IndexReader.Series interface 2022-12-19 15:22:09 +00:00
head_read_test.go Fix merge conflicts 2022-10-11 22:53:37 +05:30
head_test.go Simplify IndexReader.Series interface 2022-12-19 15:22:09 +00:00
head_wal.go Fix the build after conflict resolution 2022-10-12 17:59:42 +05:30
isolation.go tsdb: turn off transaction isolation for head compaction (#11317) 2022-09-27 19:31:23 +05:30
isolation_test.go tsdb: turn off transaction isolation for head compaction (#11317) 2022-09-27 19:31:23 +05:30
mocks_test.go Move packages out of deprecated pkg directory 2021-11-09 08:03:10 +01:00
ooo_head.go Fix merge conflicts 2022-10-11 22:53:37 +05:30
ooo_head_read.go Simplify IndexReader.Series interface 2022-12-19 15:22:09 +00:00
ooo_head_read_test.go Simplify IndexReader.Series interface 2022-12-19 15:22:09 +00:00
ooo_head_test.go Fix merge conflicts 2022-10-11 22:53:37 +05:30
querier.go tsdb: sort values for Postings only when required 2023-01-05 14:05:54 +00:00
querier_bench_test.go Add out-of-order sample support to the TSDB (#11075) 2022-09-20 22:35:50 +05:30
querier_test.go Simplify IndexReader.Series interface 2022-12-19 15:22:09 +00:00
README.md Fixed broken link in tsdb README.md 2022-10-07 16:20:20 +00:00
repair.go refactor: move from io/ioutil to io and os packages (#10528) 2022-04-27 11:24:36 +02:00
repair_test.go Simplify IndexReader.Series interface 2022-12-19 15:22:09 +00:00
tsdbblockutil.go storage: allow re-use of iterators 2022-12-15 18:32:45 +00:00
wal.go TSDB: Rename wal package to wlog (#11352) 2022-10-10 20:38:46 +05:30
wal_test.go TSDB: Rename wal package to wlog (#11352) 2022-10-10 20:38:46 +05:30

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: