prometheus/tsdb
Bryan Boreham dea37853d9
tsdb: use dennwc/varint to speed up WAL decoding (#9106)
* tsdb: use dennwc/varint to speed up decoding

This is a tiny library, MIT-licensed, which unrolls the loop to go
about twice as fast.

Needed to copy the sign-inverting logic inline, previously provided by
the `binary` package.

Signed-off-by: Bryan Boreham <bjboreham@gmail.com>

* More comments to explain varint decoding

Signed-off-by: Bryan Boreham <bjboreham@gmail.com>
2021-07-27 10:02:57 +05:30
..
chunkenc Reduce memory allocation in benchmarkIterator() (#5983) 2021-07-26 19:36:54 +05:30
chunks Stop the bleed on chunk mapper panic (#8723) 2021-05-06 14:18:59 -06:00
docs/format Add Exemplar Remote Write support (#8296) 2021-05-06 13:53:52 -07:00
encoding tsdb: use dennwc/varint to speed up WAL decoding (#9106) 2021-07-27 10:02:57 +05:30
errors MultiError: Refactored MultiError for more concise and safe usage. (#8066) 2020-10-28 15:24:58 +00:00
fileutil More info in mmap error message (#8058) 2020-10-15 12:58:13 +05:30
goversion tsdb: test for leaks (#7566) 2020-07-21 10:08:06 +02:00
index LabelNames API with matchers (#9083) 2021-07-20 18:08:08 +05:30
record Add Exemplar Remote Write support (#8296) 2021-05-06 13:53:52 -07:00
test labels: Reduce allocated memory and latency of Hash method; Added tests. (#8025) 2020-10-15 11:31:28 +01:00
testdata tsdb: Delete blocks atomically; Remove tmp blocks on start; Added test. (#7772) 2020-08-11 06:56:08 +01:00
tombstones Switched to go-kit/log 2021-06-11 12:28:36 -04:00
tsdbutil storage: Split chunks if more than 120 samples (#8582) 2021-05-18 18:37:16 +02:00
wal Switched to go-kit/log 2021-06-11 12:28:36 -04:00
.gitignore Moving tsdb into its own subdirectory 2019-08-13 13:58:49 +05:30
block.go LabelNames API with matchers (#9083) 2021-07-20 18:08:08 +05:30
block_test.go LabelNames API with matchers (#9083) 2021-07-20 18:08:08 +05:30
blockwriter.go Switched to go-kit/log 2021-06-11 12:28:36 -04:00
blockwriter_test.go Switched to go-kit/log 2021-06-11 12:28:36 -04:00
CHANGELOG.md Rename default branch to main 2021-02-22 20:28:02 +01:00
compact.go Switched to go-kit/log 2021-06-11 12:28:36 -04:00
compact_test.go Switched to go-kit/log 2021-06-11 12:28:36 -04:00
db.go tsdb: Block Head GC till pending readers are done reading (#9081) 2021-07-20 14:17:20 +05:30
db_test.go tsdb: Block Head GC till pending readers are done reading (#9081) 2021-07-20 14:17:20 +05:30
exemplar.go Exemplar resize (#8974) 2021-07-20 10:22:57 +05:30
exemplar_test.go Exemplar resize (#8974) 2021-07-20 10:22:57 +05:30
head.go LabelNames API with matchers (#9083) 2021-07-20 18:08:08 +05:30
head_bench_test.go React UI: Add Starting Screen (#8662) 2021-06-05 15:29:32 +01:00
head_test.go LabelNames API with matchers (#9083) 2021-07-20 18:08:08 +05:30
isolation.go tsdb: Block Head GC till pending readers are done reading (#9081) 2021-07-20 14:17:20 +05:30
isolation_test.go tsdb: Block Head GC till pending readers are done reading (#9081) 2021-07-20 14:17:20 +05:30
mocks_test.go Move away from testutil, refactor imports (#8087) 2020-10-22 11:00:08 +02:00
querier.go LabelNames API with matchers (#9083) 2021-07-20 18:08:08 +05:30
querier_bench_test.go React UI: Add Starting Screen (#8662) 2021-06-05 15:29:32 +01:00
querier_test.go LabelNames API with matchers (#9083) 2021-07-20 18:08:08 +05:30
README.md Replace godoc.org links 2021-06-17 07:18:51 -04:00
repair.go Switched to go-kit/log 2021-06-11 12:28:36 -04:00
repair_test.go React UI: Add Starting Screen (#8662) 2021-06-05 15:29:32 +01:00
tsdbblockutil.go Switched to go-kit/log 2021-06-11 12:28:36 -04:00
wal.go Switched to go-kit/log 2021-06-11 12:28:36 -04:00
wal_test.go Switched to go-kit/log 2021-06-11 12:28:36 -04:00

TSDB

GoPkg

This directory contains the Prometheus storage layer that is used in its 2.x releases.

A writeup of its design can be found here.

Based on the Gorilla TSDB white papers.

Video: Storing 16 Bytes at Scale from PromCon 2017.

See also the format documentation.

A series of blog posts explaining different components of TSDB: