mirror of
https://github.com/prometheus/prometheus.git
synced 2024-12-25 05:34:05 -08:00
tsdb: Update comment about a possible space optimization (#11303)
See also #11195 for the detailed reasoning. Signed-off-by: beorn7 <beorn@grafana.com> Signed-off-by: beorn7 <beorn@grafana.com>
This commit is contained in:
parent
d354f20c2a
commit
7ad36505d5
|
@ -23,11 +23,14 @@ import (
|
|||
// optimized for the dod's observed in histogram buckets, plus a few additional
|
||||
// buckets for large numbers.
|
||||
//
|
||||
// TODO(Dieterbe): We could improve this further: Each branch doesn't need to
|
||||
// support any values of any of the prior branches. So we can expand the range
|
||||
// of each branch. Do more with fewer bits. It comes at the price of more
|
||||
// expensive encoding and decoding (cutting out and later adding back that
|
||||
// center-piece we skip).
|
||||
// For optimal space utilization, each branch didn't need to support any values
|
||||
// of any of the prior branches. So we could expand the range of each branch. Do
|
||||
// more with fewer bits. It would come at the price of more expensive encoding
|
||||
// and decoding (cutting out and later adding back that center-piece we
|
||||
// skip). With the distributions of values we see in practice, we would reduce
|
||||
// the size by around 1%. A more detailed study would be needed for precise
|
||||
// values, but it's appears quite certain that we would end up far below 10%,
|
||||
// which would maybe convince us to invest the increased coding/decoding cost.
|
||||
func putVarbitInt(b *bstream, val int64) {
|
||||
switch {
|
||||
case val == 0: // Precisely 0, needs 1 bit.
|
||||
|
|
Loading…
Reference in a new issue