From 1dd9a6bd2914efba61ff6eee630610d6a3725912 Mon Sep 17 00:00:00 2001 From: Krasi Georgiev Date: Tue, 23 Oct 2018 13:43:06 +0300 Subject: [PATCH] comments about the 120samples const and link to Gorilla papers. (#423) Signed-off-by: Krasi Georgiev --- README.md | 2 ++ head.go | 3 +++ 2 files changed, 5 insertions(+) diff --git a/README.md b/README.md index 737020c4df..4393d511a5 100644 --- a/README.md +++ b/README.md @@ -7,6 +7,8 @@ This repository contains the Prometheus storage layer that is used in its 2.x re A writeup of its design can be found [here](https://fabxc.org/blog/2017-04-10-writing-a-tsdb/). +Based on the Gorilla TSDB [white papers](http://www.vldb.org/pvldb/vol8/p1816-teller.pdf). + Video: [Storing 16 Bytes at Scale](https://youtu.be/b_pEevMAC3I) from [PromCon 2017](https://promcon.io/2017-munich/). See also the [format documentation](docs/format/README.md). diff --git a/head.go b/head.go index 42bcdd9fb1..a253e884de 100644 --- a/head.go +++ b/head.go @@ -1427,6 +1427,9 @@ func (s *memSeries) truncateChunksBefore(mint int64) (removed int) { // append adds the sample (t, v) to the series. func (s *memSeries) append(t int64, v float64) (success, chunkCreated bool) { + // Based on Gorilla white papers this offers near-optimal compression ratio + // so anything bigger that this has diminishing returns and increases + // the time range within which we have to decompress all samples. const samplesPerChunk = 120 c := s.head()