bboreham
Repos
120
Followers
259

A horizontally scalable, highly available, multi-tenant, long term Prometheus.

4917
682

Turning Kubernetes Events into spans

691
46

Events

Add metrics.proto to other protobuf code (#8996)

We cannot just use prometheus/client_model directly because we want to stay consistent with the use of gogo-protobuf. So this converts metrics.proto to proto3 and edits it lightly so that it fits into the framework how prometheus/prometheus handles protobuf.

Note that metrics.proto couldn't be merged into the prompb package because prompb already has an Exemplar type, which is different from the Exemplar type in metrics.proto. The directory structure seems to play a role in the protobuf world, so I better kept it.

Signed-off-by: beorn7 beorn@grafana.com

HistogramAppender interface for sparse histograms (#9007)

Signed-off-by: Ganesh Vernekar ganeshvern@gmail.com

Sparsehistogram chunk implementation (#9009)

  • histogram chunk

Signed-off-by: Dieter Plaetinck dieter@grafana.com

  • xorAppender.AppendHistogram non-method

Signed-off-by: Dieter Plaetinck dieter@grafana.com

  • basic histogram chunk test

Signed-off-by: Dieter Plaetinck dieter@grafana.com

sparsehistogram: integer types and timestamp separation (#9014)

  • integer types and timestamp separation
  1. unify types to int64. as suggested by beorn. we want to support counters going down (resets) even if we plan to create new chunks for now, in that case
  2. histogram type doesn't know its own timestamp. include it separately in appending and iteration

Signed-off-by: Dieter Plaetinck dieter@grafana.com

  • correction: count and zeroCount to remain unsigned

to make api more resilient and that's what we use in protobuf anyway

Signed-off-by: Dieter Plaetinck dieter@grafana.com

  • temp hack. Ganesh will fix

Signed-off-by: Dieter Plaetinck dieter@grafana.com

Append sparse histograms into the Head block (#9013)

  • Append sparse histograms into the Head block

Signed-off-by: Ganesh Vernekar ganeshvern@gmail.com

  • Add AtHistogram() to Iterator interface. Make HistoChunk conform to Chunk interface.

Signed-off-by: Ganesh Vernekar ganeshvern@gmail.com

Sparsehistogram: improve dod encoding, testing, encode chunk metadata (#9015)

  • factor out different varbit schemes and include Beorn's "optimum" for buckets

Signed-off-by: Dieter Plaetinck dieter@grafana.com

  • use more compact dod encoding scheme for SHS chunk columns

Signed-off-by: Dieter Plaetinck dieter@grafana.com

  • remove FB VB and xor dod encoding because we won't use it

Signed-off-by: Dieter Plaetinck dieter@grafana.com

  • HistoChunk metadata encoding

Signed-off-by: Dieter Plaetinck dieter@grafana.com

  • add SparseHistogram.Copy()

Signed-off-by: Dieter Plaetinck dieter@grafana.com

  • histogram test: test appending a few histograms

Signed-off-by: Dieter Plaetinck dieter@grafana.com

  • add license headers

Signed-off-by: Dieter Plaetinck dieter@grafana.com

Query histograms from TSDB and unit test for append+query (#9022)

Signed-off-by: Ganesh Vernekar ganeshvern@gmail.com

Hacky implementation of protobuf parsing

This "brings back" protobuf parsing, with the only goal to play with the new sparse histograms.

The Prom-2.x style parser is highly adapted to the structure of the Prometheus text format (and later OpenMetrics). Some jumping through hoops is required to feed protobuf into it.

This is not meant to be a model for the final implementation. It should just enable sparse histogram ingestion at a reasonable efficiency.

Following known shortcomings and flaws:

  • No tests yet.

  • Summaries and legacy histograms, i.e. without sparse buckets, are ignored.

  • Staleness doesn't work (but this could be fixed in the appender, to be discussed).

  • No tricks have been tried that would be similar to the tricks the text parsers do (like direct pointers into the HTTP response body). That makes things weird here. Tricky optimizations only make sense once the final format is specified, which will almost certainly not be the old protobuf format. (Interestingly, I expect this implementation to be in fact much more efficient than the original protobuf ingestion in Prom-1.x.)

  • This is using a proto3 version of metrics.proto (mostly to be consistent with the other protobuf uses). However, proto3 sees no difference between an unset field. We depend on that to distinguish between an unset timestamp and the timestamp 0 (1970-01-01, 00:00:00 UTC). In this experimental code, we just assume that timestamp is never specified and therefore a timestamp of 0 always is interpreted as "not set".

Signed-off-by: beorn7 beorn@grafana.com

Merge pull request #9027 from prometheus/beorn7/histogram2

Hacky implementation of protobuf parsing

Fix scraping of sparse histograms (#9031)

Signed-off-by: Ganesh Vernekar ganeshvern@gmail.com

Fix a few trivial style nits

Signed-off-by: beorn7 beorn@grafana.com

sparsehistogram recoding upon detection that new buckets have appeared (#9030)

  • bucketIterator which returns all valid bucket indices for a []span

Signed-off-by: Dieter Plaetinck dieter@grafana.com

  • support for comparing []spans and generating interjections

Signed-off-by: Dieter Plaetinck dieter@grafana.com

  • add license header

Signed-off-by: Dieter Plaetinck dieter@grafana.com

  • assert order fix

Signed-off-by: Dieter Plaetinck dieter@grafana.com

  • handle pathological 0-length span case more gracefully

Signed-off-by: Dieter Plaetinck dieter@grafana.com

  • stale todo

Signed-off-by: Dieter Plaetinck dieter@grafana.com

  • decode-recode histograms when new buckets appear

Signed-off-by: Dieter Plaetinck dieter@grafana.com

  • factor out recoding and also add it to the fallback case

Signed-off-by: Dieter Plaetinck dieter@grafana.com

  • make linter happy

Signed-off-by: Dieter Plaetinck dieter@grafana.com

Make query_range serve histograms (#9036)

  • Modify query_range to serve only sparse histograms

Signed-off-by: Ganesh Vernekar ganeshvern@gmail.com

  • Finish CumulativeExpandSparseHistogram for positive schema

Signed-off-by: Ganesh Vernekar ganeshvern@gmail.com

  • Fix lint

Signed-off-by: Ganesh Vernekar ganeshvern@gmail.com

  • Fix bug and comment out tests for query_range

Signed-off-by: Ganesh Vernekar ganeshvern@gmail.com

  • Fix lint 2

Signed-off-by: Ganesh Vernekar ganeshvern@gmail.com

Bunch of fixes for sparse histograms (#9043)

  • Do not panic on histoAppender.Append

Signed-off-by: Ganesh Vernekar ganeshvern@gmail.com

  • M-map all chunks on shutdown

Signed-off-by: Ganesh Vernekar ganeshvern@gmail.com

  • Support negative schema for querying

Signed-off-by: Ganesh Vernekar ganeshvern@gmail.com

Support compaction of Head block for histograms (#9044)

  • Update querier.go to support Head compaction with histograms

Signed-off-by: Ganesh Vernekar ganeshvern@gmail.com

  • Add test for Head compaction with histograms

Signed-off-by: Ganesh Vernekar ganeshvern@gmail.com

  • Fix tests

Signed-off-by: Ganesh Vernekar ganeshvern@gmail.com

Hardcode rate() for sparse histograms

Signed-off-by: Ganesh Vernekar ganeshvern@gmail.com

Merge pull request #9046 from codesome/hist-rate

Hardcode rate() for sparse histograms

clarify

Signed-off-by: Dieter Plaetinck dieter@grafana.com

add SHS chunk recoding and head cutting to head block (no tests yet)

Signed-off-by: Dieter Plaetinck dieter@grafana.com

cleanup comments

Signed-off-by: Dieter Plaetinck dieter@grafana.com

Created at 4 hours ago

labels: remove Builder.SetAnyValue method

The requirement is met fairly well by ScratchBuilder.

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

web/api tests: don't sort individual labels

labels.Labels are always sorted.

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

Created at 4 hours ago

Add metrics.proto to other protobuf code (#8996)

We cannot just use prometheus/client_model directly because we want to stay consistent with the use of gogo-protobuf. So this converts metrics.proto to proto3 and edits it lightly so that it fits into the framework how prometheus/prometheus handles protobuf.

Note that metrics.proto couldn't be merged into the prompb package because prompb already has an Exemplar type, which is different from the Exemplar type in metrics.proto. The directory structure seems to play a role in the protobuf world, so I better kept it.

Signed-off-by: beorn7 beorn@grafana.com

HistogramAppender interface for sparse histograms (#9007)

Signed-off-by: Ganesh Vernekar ganeshvern@gmail.com

Sparsehistogram chunk implementation (#9009)

  • histogram chunk

Signed-off-by: Dieter Plaetinck dieter@grafana.com

  • xorAppender.AppendHistogram non-method

Signed-off-by: Dieter Plaetinck dieter@grafana.com

  • basic histogram chunk test

Signed-off-by: Dieter Plaetinck dieter@grafana.com

sparsehistogram: integer types and timestamp separation (#9014)

  • integer types and timestamp separation
  1. unify types to int64. as suggested by beorn. we want to support counters going down (resets) even if we plan to create new chunks for now, in that case
  2. histogram type doesn't know its own timestamp. include it separately in appending and iteration

Signed-off-by: Dieter Plaetinck dieter@grafana.com

  • correction: count and zeroCount to remain unsigned

to make api more resilient and that's what we use in protobuf anyway

Signed-off-by: Dieter Plaetinck dieter@grafana.com

  • temp hack. Ganesh will fix

Signed-off-by: Dieter Plaetinck dieter@grafana.com

Append sparse histograms into the Head block (#9013)

  • Append sparse histograms into the Head block

Signed-off-by: Ganesh Vernekar ganeshvern@gmail.com

  • Add AtHistogram() to Iterator interface. Make HistoChunk conform to Chunk interface.

Signed-off-by: Ganesh Vernekar ganeshvern@gmail.com

Sparsehistogram: improve dod encoding, testing, encode chunk metadata (#9015)

  • factor out different varbit schemes and include Beorn's "optimum" for buckets

Signed-off-by: Dieter Plaetinck dieter@grafana.com

  • use more compact dod encoding scheme for SHS chunk columns

Signed-off-by: Dieter Plaetinck dieter@grafana.com

  • remove FB VB and xor dod encoding because we won't use it

Signed-off-by: Dieter Plaetinck dieter@grafana.com

  • HistoChunk metadata encoding

Signed-off-by: Dieter Plaetinck dieter@grafana.com

  • add SparseHistogram.Copy()

Signed-off-by: Dieter Plaetinck dieter@grafana.com

  • histogram test: test appending a few histograms

Signed-off-by: Dieter Plaetinck dieter@grafana.com

  • add license headers

Signed-off-by: Dieter Plaetinck dieter@grafana.com

Query histograms from TSDB and unit test for append+query (#9022)

Signed-off-by: Ganesh Vernekar ganeshvern@gmail.com

Hacky implementation of protobuf parsing

This "brings back" protobuf parsing, with the only goal to play with the new sparse histograms.

The Prom-2.x style parser is highly adapted to the structure of the Prometheus text format (and later OpenMetrics). Some jumping through hoops is required to feed protobuf into it.

This is not meant to be a model for the final implementation. It should just enable sparse histogram ingestion at a reasonable efficiency.

Following known shortcomings and flaws:

  • No tests yet.

  • Summaries and legacy histograms, i.e. without sparse buckets, are ignored.

  • Staleness doesn't work (but this could be fixed in the appender, to be discussed).

  • No tricks have been tried that would be similar to the tricks the text parsers do (like direct pointers into the HTTP response body). That makes things weird here. Tricky optimizations only make sense once the final format is specified, which will almost certainly not be the old protobuf format. (Interestingly, I expect this implementation to be in fact much more efficient than the original protobuf ingestion in Prom-1.x.)

  • This is using a proto3 version of metrics.proto (mostly to be consistent with the other protobuf uses). However, proto3 sees no difference between an unset field. We depend on that to distinguish between an unset timestamp and the timestamp 0 (1970-01-01, 00:00:00 UTC). In this experimental code, we just assume that timestamp is never specified and therefore a timestamp of 0 always is interpreted as "not set".

Signed-off-by: beorn7 beorn@grafana.com

Merge pull request #9027 from prometheus/beorn7/histogram2

Hacky implementation of protobuf parsing

Fix scraping of sparse histograms (#9031)

Signed-off-by: Ganesh Vernekar ganeshvern@gmail.com

Fix a few trivial style nits

Signed-off-by: beorn7 beorn@grafana.com

sparsehistogram recoding upon detection that new buckets have appeared (#9030)

  • bucketIterator which returns all valid bucket indices for a []span

Signed-off-by: Dieter Plaetinck dieter@grafana.com

  • support for comparing []spans and generating interjections

Signed-off-by: Dieter Plaetinck dieter@grafana.com

  • add license header

Signed-off-by: Dieter Plaetinck dieter@grafana.com

  • assert order fix

Signed-off-by: Dieter Plaetinck dieter@grafana.com

  • handle pathological 0-length span case more gracefully

Signed-off-by: Dieter Plaetinck dieter@grafana.com

  • stale todo

Signed-off-by: Dieter Plaetinck dieter@grafana.com

  • decode-recode histograms when new buckets appear

Signed-off-by: Dieter Plaetinck dieter@grafana.com

  • factor out recoding and also add it to the fallback case

Signed-off-by: Dieter Plaetinck dieter@grafana.com

  • make linter happy

Signed-off-by: Dieter Plaetinck dieter@grafana.com

Make query_range serve histograms (#9036)

  • Modify query_range to serve only sparse histograms

Signed-off-by: Ganesh Vernekar ganeshvern@gmail.com

  • Finish CumulativeExpandSparseHistogram for positive schema

Signed-off-by: Ganesh Vernekar ganeshvern@gmail.com

  • Fix lint

Signed-off-by: Ganesh Vernekar ganeshvern@gmail.com

  • Fix bug and comment out tests for query_range

Signed-off-by: Ganesh Vernekar ganeshvern@gmail.com

  • Fix lint 2

Signed-off-by: Ganesh Vernekar ganeshvern@gmail.com

Bunch of fixes for sparse histograms (#9043)

  • Do not panic on histoAppender.Append

Signed-off-by: Ganesh Vernekar ganeshvern@gmail.com

  • M-map all chunks on shutdown

Signed-off-by: Ganesh Vernekar ganeshvern@gmail.com

  • Support negative schema for querying

Signed-off-by: Ganesh Vernekar ganeshvern@gmail.com

Support compaction of Head block for histograms (#9044)

  • Update querier.go to support Head compaction with histograms

Signed-off-by: Ganesh Vernekar ganeshvern@gmail.com

  • Add test for Head compaction with histograms

Signed-off-by: Ganesh Vernekar ganeshvern@gmail.com

  • Fix tests

Signed-off-by: Ganesh Vernekar ganeshvern@gmail.com

Hardcode rate() for sparse histograms

Signed-off-by: Ganesh Vernekar ganeshvern@gmail.com

Merge pull request #9046 from codesome/hist-rate

Hardcode rate() for sparse histograms

clarify

Signed-off-by: Dieter Plaetinck dieter@grafana.com

add SHS chunk recoding and head cutting to head block (no tests yet)

Signed-off-by: Dieter Plaetinck dieter@grafana.com

cleanup comments

Signed-off-by: Dieter Plaetinck dieter@grafana.com

Created at 10 hours ago

labels: apply suggestions from code review

Thanks to bwplotka!

Co-authored-by: Bartlomiej Plotka bwplotka@gmail.com Signed-off-by: Bryan Boreham bjboreham@gmail.com

Created at 10 hours ago
issue comment
relabel: add keepequal/dropequal relabel action

How do we get the docs page updated with the new options? https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config

Created at 16 hours ago

Remove some 'reasonable'

Requested by Julius Volz.

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

One more 'sane' has crept in

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

Created at 17 hours ago

One more 'sane' has crept in

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

Created at 17 hours ago

documentation: align kubernetes example with the prom operator and mixins

Signed-off-by: paulfantom pawel@krupa.net.pl

Merge pull request #9832 from paulfantom/k8s-convention

documentation: align kubernetes example with the community

build(deps): bump @codemirror/view from 0.19.19 to 0.19.20 in /web/ui (#9833)

Bumps @codemirror/view from 0.19.19 to 0.19.20.


updated-dependencies:

  • dependency-name: "@codemirror/view" dependency-type: direct:production update-type: version-update:semver-patch ...

Signed-off-by: dependabot[bot] support@github.com

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

build(deps-dev): bump eslint from 8.2.0 to 8.3.0 in /web/ui (#9835)

Bumps eslint from 8.2.0 to 8.3.0.


updated-dependencies:

  • dependency-name: eslint dependency-type: direct:development update-type: version-update:semver-minor ...

Signed-off-by: dependabot[bot] support@github.com

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

build(deps-dev): bump nock from 13.1.3 to 13.2.1 in /web/ui (#9836)

Bumps nock from 13.1.3 to 13.2.1.


updated-dependencies:

  • dependency-name: nock dependency-type: direct:development update-type: version-update:semver-minor ...

Signed-off-by: dependabot[bot] support@github.com

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

build(deps): bump @codemirror/search from 0.19.2 to 0.19.3 in /web/ui (#9838)

Bumps @codemirror/search from 0.19.2 to 0.19.3.


updated-dependencies:

  • dependency-name: "@codemirror/search" dependency-type: direct:production update-type: version-update:semver-patch ...

Signed-off-by: dependabot[bot] support@github.com

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

build(deps-dev): bump @types/node from 16.11.7 to 16.11.9 in /web/ui (#9839)

Bumps @types/node from 16.11.7 to 16.11.9.


updated-dependencies:

  • dependency-name: "@types/node" dependency-type: direct:development update-type: version-update:semver-patch ...

Signed-off-by: dependabot[bot] support@github.com

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

build(deps-dev): bump @types/react from 17.0.35 to 17.0.36 in /web/ui (#9837)

Bumps @types/react from 17.0.35 to 17.0.36.


updated-dependencies:

  • dependency-name: "@types/react" dependency-type: direct:development update-type: version-update:semver-patch ...

Signed-off-by: dependabot[bot] support@github.com

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

build(deps): bump @codemirror/state from 0.19.5 to 0.19.6 in /web/ui (#9840)

Bumps @codemirror/state from 0.19.5 to 0.19.6.


updated-dependencies:

  • dependency-name: "@codemirror/state" dependency-type: direct:production update-type: version-update:semver-patch ...

Signed-off-by: dependabot[bot] support@github.com

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

promql: Fix another ChunkEncoding call

Signed-off-by: beorn7 beorn@grafana.com

web:Fix a potential goroutine leak by channel (#8965)

Signed-off-by: lzhfromustc lzhfromustc@gmail.com

build(deps): bump github.com/aws/aws-sdk-go from 1.42.8 to 1.42.10 (#9845)

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

build(deps-dev): bump @types/jquery from 3.5.8 to 3.5.9 in /web/ui (#9844)

Bumps @types/jquery from 3.5.8 to 3.5.9.


updated-dependencies:

  • dependency-name: "@types/jquery" dependency-type: direct:development update-type: version-update:semver-patch ...

Signed-off-by: dependabot[bot] support@github.com

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

histogram: Add FloatHistogram

Including a few adjustments for normal Histogram, too, e.g. use pointer receiver to avoid the large copy on method calls.

Signed-off-by: beorn7 beorn@grafana.com

cmd: use t.TempDir instead of ioutil.TempDir on tests (#9852)

Check postings bytes length when decoding (#9766)

Added validation to expected postings length compared to the bytes slice length. With 32bit postings, we expect to have 4 bytes per each posting. If the number doesn't add up, we know that the input data is not compatible with our code (maybe it's cut, or padded with trash, or even written in a different coded).

This is needed in downstream projects to correctly identify cached postings written with an unknown codec, but it's also a good idea to validate it here.

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

update email

Signed-off-by: jessicagreben jessicagrebens@gmail.com

Merge pull request #9857 from prometheus/beorn7/floathistogram

histogram: Add FloatHistogram

add const for exit codes

Signed-off-by: jessicagreben jessicagrebens@gmail.com

Merge pull request #9858 from JessicaGreben/update-maintainer-email

Update email to use prometheus.io

Created at 17 hours ago
pull request opened
tsdb: improve blockBaseSeriesSet scan

Something I noticed while working on #11631.

Inverting the test for chunks deleted by tombstones makes all three rejections consistent, and also avoids the case where a chunk is excluded but still causes trimFront or trimBack to be set.

Created at 1 day ago
create branch
bboreham create branch improve-bbss
Created at 1 day ago
pull request opened
tsdb: use smaller allocation in blockBaseSeriesSet

This reduces garbage, hence goes faster, when a short time range is required compared to the amount of chunks in the block. For example recording rules and alerts often look only at the last few minutes.

Benchmarks

name                                         old time/op    new time/op    delta
QuerierSelect/Head/1of1000000-8                 179ms ± 7%     165ms ± 3%    -7.91%  (p=0.008 n=5+5)
QuerierSelect/Head/10of1000000-8                187ms ± 7%     163ms ± 3%   -13.23%  (p=0.008 n=5+5)
QuerierSelect/Head/100of1000000-8               191ms ±10%     162ms ± 0%   -15.00%  (p=0.008 n=5+5)
QuerierSelect/Head/1000of1000000-8              195ms ± 5%     163ms ± 3%   -16.29%  (p=0.008 n=5+5)
QuerierSelect/Head/10000of1000000-8             182ms ± 3%     165ms ± 3%    -8.99%  (p=0.008 n=5+5)
QuerierSelect/Head/100000of1000000-8            199ms ± 7%     173ms ± 2%   -13.19%  (p=0.008 n=5+5)
QuerierSelect/Head/1000000of1000000-8           283ms ±11%     269ms ± 5%      ~     (p=0.222 n=5+5)
QuerierSelect/SortedHead/1of1000000-8           761ms ± 0%     750ms ± 1%    -1.40%  (p=0.008 n=5+5)
QuerierSelect/SortedHead/10of1000000-8          762ms ± 1%     748ms ± 0%    -1.91%  (p=0.008 n=5+5)
QuerierSelect/SortedHead/100of1000000-8         760ms ± 0%     758ms ± 2%      ~     (p=0.690 n=5+5)
QuerierSelect/SortedHead/1000of1000000-8        760ms ± 0%     753ms ± 2%      ~     (p=0.151 n=5+5)
QuerierSelect/SortedHead/10000of1000000-8       762ms ± 0%     744ms ± 1%    -2.38%  (p=0.008 n=5+5)
QuerierSelect/SortedHead/100000of1000000-8      770ms ± 1%     756ms ± 1%    -1.77%  (p=0.008 n=5+5)
QuerierSelect/SortedHead/1000000of1000000-8     845ms ± 1%     844ms ± 1%      ~     (p=0.841 n=5+5)
QuerierSelect/Block/1of1000000-8                257ms ± 0%     241ms ± 1%    -6.01%  (p=0.008 n=5+5)
QuerierSelect/Block/10of1000000-8               257ms ± 1%     244ms ± 2%    -5.20%  (p=0.008 n=5+5)
QuerierSelect/Block/100of1000000-8              258ms ± 0%     246ms ± 2%    -4.56%  (p=0.008 n=5+5)
QuerierSelect/Block/1000of1000000-8             258ms ± 0%     242ms ± 0%    -5.84%  (p=0.016 n=5+4)
QuerierSelect/Block/10000of1000000-8            258ms ± 1%     248ms ± 4%    -3.98%  (p=0.016 n=5+5)
QuerierSelect/Block/100000of1000000-8           266ms ± 0%     253ms ± 0%    -4.80%  (p=0.016 n=5+4)
QuerierSelect/Block/1000000of1000000-8          361ms ± 7%     364ms ± 2%      ~     (p=1.000 n=5+5)

name                                         old alloc/op   new alloc/op   delta
QuerierSelect/Head/1of1000000-8                64.0MB ± 0%     0.0MB ± 0%  -100.00%  (p=0.000 n=5+4)
QuerierSelect/Head/10of1000000-8               64.0MB ± 0%     0.0MB ± 0%  -100.00%  (p=0.008 n=5+5)
QuerierSelect/Head/100of1000000-8              64.0MB ± 0%     0.0MB ± 0%   -99.97%  (p=0.008 n=5+5)
QuerierSelect/Head/1000of1000000-8             64.1MB ± 0%     0.2MB ± 0%   -99.67%  (p=0.008 n=5+5)
QuerierSelect/Head/10000of1000000-8            65.4MB ± 0%     2.1MB ± 0%   -96.82%  (p=0.008 n=5+5)
QuerierSelect/Head/100000of1000000-8           78.4MB ± 0%    20.8MB ± 0%   -73.47%  (p=0.000 n=5+4)
QuerierSelect/Head/1000000of1000000-8           208MB ± 0%     208MB ± 0%      ~     (p=0.333 n=5+4)
QuerierSelect/SortedHead/1of1000000-8           114MB ± 0%      50MB ± 0%   -56.30%  (p=0.008 n=5+5)
QuerierSelect/SortedHead/10of1000000-8          114MB ± 0%      50MB ± 0%   -56.30%  (p=0.008 n=5+5)
QuerierSelect/SortedHead/100of1000000-8         114MB ± 0%      50MB ± 0%   -56.28%  (p=0.008 n=5+5)
QuerierSelect/SortedHead/1000of1000000-8        114MB ± 0%      50MB ± 0%   -56.17%  (p=0.008 n=5+5)
QuerierSelect/SortedHead/10000of1000000-8       115MB ± 0%      52MB ± 0%   -55.04%  (p=0.008 n=5+5)
QuerierSelect/SortedHead/100000of1000000-8      128MB ± 0%      70MB ± 0%   -44.97%  (p=0.008 n=5+5)
QuerierSelect/SortedHead/1000000of1000000-8     258MB ± 0%     258MB ± 0%      ~     (all equal)
QuerierSelect/Block/1of1000000-8                115MB ± 0%      51MB ± 0%   -55.56%  (p=0.008 n=5+5)
QuerierSelect/Block/10of1000000-8               115MB ± 0%      51MB ± 0%   -55.55%  (p=0.008 n=5+5)
QuerierSelect/Block/100of1000000-8              115MB ± 0%      51MB ± 0%   -55.54%  (p=0.008 n=5+5)
QuerierSelect/Block/1000of1000000-8             115MB ± 0%      51MB ± 0%   -55.44%  (p=0.008 n=5+5)
QuerierSelect/Block/10000of1000000-8            116MB ± 0%      53MB ± 0%   -54.40%  (p=0.008 n=5+5)
QuerierSelect/Block/100000of1000000-8           128MB ± 0%      70MB ± 0%   -45.00%  (p=0.008 n=5+5)
QuerierSelect/Block/1000000of1000000-8          243MB ± 0%     243MB ± 0%      ~     (p=0.476 n=5+5)
Created at 1 day ago
create branch
bboreham create branch size-meta-alloc
Created at 1 day ago
Created at 1 day ago
issue comment
Reuse the postings index when head and ooo head are overlapped

My constructive feedback is to show a benchmark.

Created at 2 days ago