prometheus/tsdb
Jesus Vazquez 136956cca4
Attempt to append ooo sample at the end first (#11615)
This is an optimization on the existing append in OOOChunk.

What we've been doing so far is find the place inside the out-of-order
slice where the new sample should go in and then place it there and move
any samples to the right if necessary. This is OK but requires a binary
search every time the slice is bigger than 0.

The optimization is opinionated and suggests that although out-of-order
samples can be out-of-order amongst themselves they'll probably be in
order thus we can probably optimistically append at the end and if not
do the binary search.

OOOChunks are capped to 30 samples by default so this is a small
optimization but everything adds up, specially if you handle many active
timeseries with out-of-order samples.

Signed-off-by: Jesus Vazquez <jesus.vazquez@grafana.com>
Signed-off-by: Jesus Vazquez <jesusvazquez@users.noreply.github.com>
Co-authored-by: Ganesh Vernekar <ganeshvern@gmail.com>
2023-01-13 19:00:50 +05:30
..
agent agent: native histogram support (#11842) 2023-01-12 11:13:44 -05:00
chunkenc tsdb: Add integer gauge histogram support 2023-01-11 13:28:43 +01:00
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 Shortcut postings for matchers when empty postings are selected (#11813) 2023-01-10 15:21:49 +05:30
record tsdb: Add counter reset hint to histograms and support in WAL 2023-01-10 17:41:53 +05:30
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 histograms: Add remote-write support for Float Histograms (#11817) 2023-01-13 16:39:20 +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 Support FloatHistogram in TSDB (#11522) 2022-12-28 14:25:07 +05:30
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 Support FloatHistogram in TSDB (#11522) 2022-12-28 14:25:07 +05:30
db.go Update package tsdb for new labels.Labels type 2022-12-19 15:22:09 +00:00
db_test.go Support FloatHistogram in TSDB (#11522) 2022-12-28 14:25:07 +05:30
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 tsdb: Add integer gauge histogram support 2023-01-11 13:28:43 +01:00
head_append.go tsdb: Add integer gauge histogram support 2023-01-11 13:28:43 +01: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 Shortcut postings for matchers when empty postings are selected (#11813) 2023-01-10 15:21:49 +05:30
head_read_test.go Fix merge conflicts 2022-10-11 22:53:37 +05:30
head_test.go tsdb: Add integer gauge histogram support 2023-01-11 13:28:43 +01:00
head_wal.go tsdb: Remove isHistogramSeries from memSeries 2022-12-28 14:31:55 +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 Attempt to append ooo sample at the end first (#11615) 2023-01-13 19:00:50 +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 Shortcut postings for matchers when empty postings are selected (#11813) 2023-01-10 15:21:49 +05:30
querier_bench_test.go Shortcut postings for matchers when empty postings are selected (#11813) 2023-01-10 15:21:49 +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 Support FloatHistogram in TSDB (#11522) 2022-12-28 14:25:07 +05:30
wal.go Use errors.Is to check for a specific error 2022-12-29 23:23:07 +08:00
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: