prometheus/tsdb
Oleg Zaytsev 6e2905a4d4
Use zeropool.Pool to workaround SA6002 (#12189)
* Use zeropool.Pool to workaround SA6002

I built a tiny library called https://github.com/colega/zeropool to
workaround the SA6002 staticheck issue.

While searching for the references of that SA6002 staticheck issues on
Github first results was Prometheus itself, with quite a lot of ignores
of it.

This changes the usages of `sync.Pool` to `zeropool.Pool[T]` where a
pointer is not available.

Also added a benchmark for HeadAppender Append/Commit when series
already exist, which is one of the most usual cases IMO, as I didn't find
any.

Signed-off-by: Oleg Zaytsev <mail@olegzaytsev.com>

* Improve BenchmarkHeadAppender with more cases

Signed-off-by: Oleg Zaytsev <mail@olegzaytsev.com>

* A little copying is better than a little dependency

https://www.youtube.com/watch?v=PAAkCSZUG1c&t=9m28s

Signed-off-by: Oleg Zaytsev <mail@olegzaytsev.com>

* Fix imports order

Signed-off-by: Oleg Zaytsev <mail@olegzaytsev.com>

* Add license header

Signed-off-by: Oleg Zaytsev <mail@olegzaytsev.com>

* Copyright should be on one of the first 3 lines

Signed-off-by: Oleg Zaytsev <mail@olegzaytsev.com>

* Use require.Equal for testing

I don't depend on testify in my lib, but here we have it available.

Signed-off-by: Oleg Zaytsev <mail@olegzaytsev.com>

* Avoid flaky test

Signed-off-by: Oleg Zaytsev <mail@olegzaytsev.com>

* Also use zeropool for pointsPool in engine.go

Signed-off-by: Oleg Zaytsev <mail@olegzaytsev.com>

---------

Signed-off-by: Oleg Zaytsev <mail@olegzaytsev.com>
2023-03-29 20:34:34 +01:00
..
agent Adds an affirmative log message for successful WAL repair (#12135) 2023-03-21 19:33:43 +05:30
chunkenc Fix: getting rid of EncOOOXOR chunk encoding (#12111) 2023-03-16 15:53:47 +05:30
chunks Fix: getting rid of EncOOOXOR chunk encoding (#12111) 2023-03-16 15:53:47 +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
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 Refactor tsdbutil for tests/native histograms (#11948) 2023-02-10 17:09:33 +05:30
wlog Feat: metrics for head_chunks & wal folders (#12013) 2023-03-02 15:25:56 +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 histograms: Return actually useful counter reset hints 2023-01-25 16:57:21 +01: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 histograms: Return actually useful counter reset hints 2023-01-25 16:57:21 +01:00
db.go Adds an affirmative log message for successful WAL repair (#12135) 2023-03-21 19:33:43 +05:30
db_test.go Merge pull request #11992 from codesome/no-reencode-chunk 2023-03-15 18:30:38 +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 Use zeropool.Pool to workaround SA6002 (#12189) 2023-03-29 20:34:34 +01:00
head_append.go Use zeropool.Pool to workaround SA6002 (#12189) 2023-03-29 20:34:34 +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 tsdb: Fix a comment in tsdb/head_read.go 2023-03-21 15:15:36 +05:30
head_read_test.go Fix merge conflicts 2022-10-11 22:53:37 +05:30
head_test.go Use zeropool.Pool to workaround SA6002 (#12189) 2023-03-29 20:34:34 +01:00
head_wal.go Use zeropool.Pool to workaround SA6002 (#12189) 2023-03-29 20:34:34 +01:00
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 Add unit test and also protect truncateOOO 2023-02-10 15:18:17 +01:00
ooo_head_read_test.go tsdb: Only initialise out-of-order fields when required 2023-01-12 20:29:16 +05:30
ooo_head_test.go Fix merge conflicts 2022-10-11 22:53:37 +05:30
querier.go Optimization on mergedStringIter (#12132) 2023-03-27 17:10:45 +05:30
querier_bench_test.go Optimization on mergedStringIter (#12132) 2023-03-27 17:10:45 +05:30
querier_test.go Update tests to not assume the chunk implementation 2023-03-15 17:58:37 +05:30
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
test.txt Do not re-encode head chunk in ChunkQuerier 2023-03-15 17:58:01 +05:30
tsdbblockutil.go Support FloatHistogram in TSDB (#11522) 2022-12-28 14:25:07 +05:30
wal.go Use zeropool.Pool to workaround SA6002 (#12189) 2023-03-29 20:34:34 +01: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: