Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement histogram iterators for batch #5944

Merged
merged 5 commits into from
May 16, 2024

Conversation

yeya24
Copy link
Collaborator

@yeya24 yeya24 commented May 12, 2024

What this PR does:

Support native histogram chunks in batch iterator. This should unlock native histogram support in Querier.

Since we haven't added support to ingest native histograms yet, I will try to add querying native histograms of Querier in another PR.

Which issue(s) this PR fixes:
Fixes #

Checklist

  • Tests updated
  • Documentation added
  • CHANGELOG.md updated - the order of entries should be [CHANGE], [FEATURE], [ENHANCEMENT], [BUGFIX]

Signed-off-by: Ben Ye <benye@amazon.com>
Signed-off-by: Ben Ye <benye@amazon.com>
Timestamps [BatchSize]int64
Values [BatchSize]float64
Histograms [BatchSize]*histogram.Histogram
FloatHistograms [BatchSize]*histogram.FloatHistogram
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Any idea how I can change to make Batch smaller? It should be only 1 value type per batch and other array are redundant.

@yeya24 yeya24 requested a review from alanprot May 14, 2024 23:17
Comment on lines +84 to +85
// The batch reached it intended size or a new value type is used.
// Add another batch to the result and use it for further appending.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is it possible to change the value type?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Each batch will only have one value type.

@alanprot
Copy link
Member

Amazing. LGTM

@yeya24
Copy link
Collaborator Author

yeya24 commented May 15, 2024

Benchmark results on current implementation compared with the old code. Old version seems having much better CPU time probably since the logic is simpler. No need to check different chunk value types. It is hard to tell if CPU increase is relevant to the two additional arrays in batch type.

Old version has better allocation, too, which is expected. Although the change is small.

name                                                                                                                              old time/op    new time/op    delta
NewChunkMergeIterator_CreateAndIterate/chunks:_1000_samples_per_chunk:_100_duplication_factor:_1_encoding:_PrometheusXorChunk-10    2.87ms ± 3%    3.24ms ± 0%   ~     (p=0.100 n=3+3)
NewChunkMergeIterator_CreateAndIterate/chunks:_1000_samples_per_chunk:_100_duplication_factor:_3_encoding:_PrometheusXorChunk-10    8.45ms ± 0%    9.53ms ± 0%   ~     (p=0.100 n=3+3)
NewChunkMergeIterator_CreateAndIterate/chunks:_100_samples_per_chunk:_100_duplication_factor:_1_encoding:_PrometheusXorChunk-10      294µs ± 1%     327µs ± 0%   ~     (p=0.100 n=3+3)
NewChunkMergeIterator_CreateAndIterate/chunks:_100_samples_per_chunk:_100_duplication_factor:_3_encoding:_PrometheusXorChunk-10      861µs ± 2%     974µs ± 3%   ~     (p=0.100 n=3+3)
NewChunkMergeIterator_CreateAndIterate/chunks:_1_samples_per_chunk:_100_duplication_factor:_1_encoding:_PrometheusXorChunk-10       3.77µs ± 2%    4.49µs ± 0%   ~     (p=0.100 n=3+3)
NewChunkMergeIterator_CreateAndIterate/chunks:_1_samples_per_chunk:_100_duplication_factor:_3_encoding:_PrometheusXorChunk-10       10.8µs ± 2%    12.4µs ± 0%   ~     (p=0.100 n=3+3)

name                                                                                                                              old alloc/op   new alloc/op   delta
NewChunkMergeIterator_CreateAndIterate/chunks:_1000_samples_per_chunk:_100_duplication_factor:_1_encoding:_PrometheusXorChunk-10     131kB ± 0%     132kB ± 0%   ~     (p=0.100 n=3+3)
NewChunkMergeIterator_CreateAndIterate/chunks:_1000_samples_per_chunk:_100_duplication_factor:_3_encoding:_PrometheusXorChunk-10     457kB ± 0%     459kB ± 0%   ~     (p=0.100 n=3+3)
NewChunkMergeIterator_CreateAndIterate/chunks:_100_samples_per_chunk:_100_duplication_factor:_1_encoding:_PrometheusXorChunk-10     14.9kB ± 0%    15.9kB ± 0%   ~     (p=0.100 n=3+3)
NewChunkMergeIterator_CreateAndIterate/chunks:_100_samples_per_chunk:_100_duplication_factor:_3_encoding:_PrometheusXorChunk-10     50.7kB ± 0%    52.9kB ± 0%   ~     (p=0.100 n=3+3)
NewChunkMergeIterator_CreateAndIterate/chunks:_1_samples_per_chunk:_100_duplication_factor:_1_encoding:_PrometheusXorChunk-10       1.67kB ± 0%    2.68kB ± 0%   ~     (p=0.100 n=3+3)
NewChunkMergeIterator_CreateAndIterate/chunks:_1_samples_per_chunk:_100_duplication_factor:_3_encoding:_PrometheusXorChunk-10       4.01kB ± 0%    6.17kB ± 0%   ~     (p=0.100 n=3+3)

name                                                                                                                              old allocs/op  new allocs/op  delta
NewChunkMergeIterator_CreateAndIterate/chunks:_1000_samples_per_chunk:_100_duplication_factor:_1_encoding:_PrometheusXorChunk-10     2.01k ± 0%     2.01k ± 0%   ~     (all equal)
NewChunkMergeIterator_CreateAndIterate/chunks:_1000_samples_per_chunk:_100_duplication_factor:_3_encoding:_PrometheusXorChunk-10     6.02k ± 0%     6.02k ± 0%   ~     (all equal)
NewChunkMergeIterator_CreateAndIterate/chunks:_100_samples_per_chunk:_100_duplication_factor:_1_encoding:_PrometheusXorChunk-10        213 ± 0%       213 ± 0%   ~     (all equal)
NewChunkMergeIterator_CreateAndIterate/chunks:_100_samples_per_chunk:_100_duplication_factor:_3_encoding:_PrometheusXorChunk-10        623 ± 0%       623 ± 0%   ~     (all equal)
NewChunkMergeIterator_CreateAndIterate/chunks:_1_samples_per_chunk:_100_duplication_factor:_1_encoding:_PrometheusXorChunk-10         15.0 ± 0%      15.0 ± 0%   ~     (all equal)
NewChunkMergeIterator_CreateAndIterate/chunks:_1_samples_per_chunk:_100_duplication_factor:_3_encoding:_PrometheusXorChunk-10         29.0 ± 0%      29.0 ± 0%   ~     (all equal)
name                                                              old time/op    new time/op    delta
NewChunkMergeIterator_Seek/scrapeInterval_30s_seekStep:_15s-10      10.1ms ± 4%    11.5ms ± 3%   ~     (p=0.100 n=3+3)
NewChunkMergeIterator_Seek/scrapeInterval_30s_seekStep:_30s-10      9.66ms ± 0%   11.09ms ± 0%   ~     (p=0.100 n=3+3)
NewChunkMergeIterator_Seek/scrapeInterval_30s_seekStep:_60s-10      9.57ms ± 0%   10.97ms ± 0%   ~     (p=0.100 n=3+3)
NewChunkMergeIterator_Seek/scrapeInterval_30s_seekStep:_300s-10     11.0ms ± 2%    12.7ms ± 0%   ~     (p=0.100 n=3+3)
NewChunkMergeIterator_Seek/scrapeInterval_30s_seekStep:_900s-10     10.2ms ± 0%    11.7ms ± 0%   ~     (p=0.100 n=3+3)
NewChunkMergeIterator_Seek/scrapeInterval_30s_seekStep:_1500s-10    8.70ms ± 3%    9.85ms ± 0%   ~     (p=0.100 n=3+3)
NewChunkMergeIterator_Seek/scrapeInterval_30s_seekStep:_3000s-10    4.13ms ± 1%    4.60ms ± 0%   ~     (p=0.100 n=3+3)
NewChunkMergeIterator_Seek/scrapeInterval_30s_seekStep:_6000s-10    1.50ms ± 1%    1.61ms ± 0%   ~     (p=0.100 n=3+3)
NewChunkMergeIterator_Seek/scrapeInterval_10s_seekStep:_5s-10       9.92ms ± 0%   11.40ms ± 1%   ~     (p=0.100 n=3+3)
NewChunkMergeIterator_Seek/scrapeInterval_10s_seekStep:_10s-10      9.68ms ± 0%   11.27ms ± 1%   ~     (p=0.100 n=3+3)
NewChunkMergeIterator_Seek/scrapeInterval_10s_seekStep:_20s-10      9.63ms ± 0%   11.11ms ± 0%   ~     (p=0.100 n=3+3)
NewChunkMergeIterator_Seek/scrapeInterval_10s_seekStep:_100s-10     10.8ms ± 0%    12.7ms ± 1%   ~     (p=0.100 n=3+3)
NewChunkMergeIterator_Seek/scrapeInterval_10s_seekStep:_300s-10     9.93ms ± 0%   11.75ms ± 1%   ~     (p=0.100 n=3+3)
NewChunkMergeIterator_Seek/scrapeInterval_10s_seekStep:_500s-10     8.47ms ± 0%    9.91ms ± 0%   ~     (p=0.100 n=3+3)
NewChunkMergeIterator_Seek/scrapeInterval_10s_seekStep:_1000s-10    4.09ms ± 0%    4.63ms ± 0%   ~     (p=0.100 n=3+3)
NewChunkMergeIterator_Seek/scrapeInterval_10s_seekStep:_2000s-10    1.49ms ± 0%    1.62ms ± 0%   ~     (p=0.100 n=3+3)

name                                                              old alloc/op   new alloc/op   delta
NewChunkMergeIterator_Seek/scrapeInterval_30s_seekStep:_15s-10       457kB ± 0%     459kB ± 0%   ~     (p=0.100 n=3+3)
NewChunkMergeIterator_Seek/scrapeInterval_30s_seekStep:_30s-10       457kB ± 0%     459kB ± 0%   ~     (p=0.100 n=3+3)
NewChunkMergeIterator_Seek/scrapeInterval_30s_seekStep:_60s-10       457kB ± 0%     459kB ± 0%   ~     (p=0.100 n=3+3)
NewChunkMergeIterator_Seek/scrapeInterval_30s_seekStep:_300s-10      457kB ± 0%     459kB ± 0%   ~     (p=0.100 n=3+3)
NewChunkMergeIterator_Seek/scrapeInterval_30s_seekStep:_900s-10      457kB ± 0%     459kB ± 0%   ~     (p=0.100 n=3+3)
NewChunkMergeIterator_Seek/scrapeInterval_30s_seekStep:_1500s-10     457kB ± 0%     459kB ± 0%   ~     (p=0.100 n=3+3)
NewChunkMergeIterator_Seek/scrapeInterval_30s_seekStep:_3000s-10     457kB ± 0%     459kB ± 0%   ~     (p=0.100 n=3+3)
NewChunkMergeIterator_Seek/scrapeInterval_30s_seekStep:_6000s-10     457kB ± 0%     459kB ± 0%   ~     (p=0.100 n=3+3)
NewChunkMergeIterator_Seek/scrapeInterval_10s_seekStep:_5s-10        457kB ± 0%     459kB ± 0%   ~     (p=0.100 n=3+3)
NewChunkMergeIterator_Seek/scrapeInterval_10s_seekStep:_10s-10       457kB ± 0%     459kB ± 0%   ~     (p=0.100 n=3+3)
NewChunkMergeIterator_Seek/scrapeInterval_10s_seekStep:_20s-10       457kB ± 0%     459kB ± 0%   ~     (p=0.100 n=3+3)
NewChunkMergeIterator_Seek/scrapeInterval_10s_seekStep:_100s-10      457kB ± 0%     459kB ± 0%   ~     (p=0.100 n=3+3)
NewChunkMergeIterator_Seek/scrapeInterval_10s_seekStep:_300s-10      457kB ± 0%     459kB ± 0%   ~     (p=0.100 n=3+3)
NewChunkMergeIterator_Seek/scrapeInterval_10s_seekStep:_500s-10      457kB ± 0%     459kB ± 0%   ~     (p=0.100 n=3+3)
NewChunkMergeIterator_Seek/scrapeInterval_10s_seekStep:_1000s-10     457kB ± 0%     459kB ± 0%   ~     (p=0.100 n=3+3)
NewChunkMergeIterator_Seek/scrapeInterval_10s_seekStep:_2000s-10     457kB ± 0%     459kB ± 0%   ~     (p=0.100 n=3+3)

name                                                              old allocs/op  new allocs/op  delta
NewChunkMergeIterator_Seek/scrapeInterval_30s_seekStep:_15s-10       6.02k ± 0%     6.02k ± 0%   ~     (all equal)
NewChunkMergeIterator_Seek/scrapeInterval_30s_seekStep:_30s-10       6.02k ± 0%     6.02k ± 0%   ~     (all equal)
NewChunkMergeIterator_Seek/scrapeInterval_30s_seekStep:_60s-10       6.02k ± 0%     6.02k ± 0%   ~     (all equal)
NewChunkMergeIterator_Seek/scrapeInterval_30s_seekStep:_300s-10      6.02k ± 0%     6.02k ± 0%   ~     (all equal)
NewChunkMergeIterator_Seek/scrapeInterval_30s_seekStep:_900s-10      6.02k ± 0%     6.02k ± 0%   ~     (all equal)
NewChunkMergeIterator_Seek/scrapeInterval_30s_seekStep:_1500s-10     6.02k ± 0%     6.02k ± 0%   ~     (all equal)
NewChunkMergeIterator_Seek/scrapeInterval_30s_seekStep:_3000s-10     6.02k ± 0%     6.02k ± 0%   ~     (all equal)
NewChunkMergeIterator_Seek/scrapeInterval_30s_seekStep:_6000s-10     6.02k ± 0%     6.02k ± 0%   ~     (all equal)
NewChunkMergeIterator_Seek/scrapeInterval_10s_seekStep:_5s-10        6.02k ± 0%     6.02k ± 0%   ~     (all equal)
NewChunkMergeIterator_Seek/scrapeInterval_10s_seekStep:_10s-10       6.02k ± 0%     6.02k ± 0%   ~     (all equal)
NewChunkMergeIterator_Seek/scrapeInterval_10s_seekStep:_20s-10       6.02k ± 0%     6.02k ± 0%   ~     (all equal)
NewChunkMergeIterator_Seek/scrapeInterval_10s_seekStep:_100s-10      6.02k ± 0%     6.02k ± 0%   ~     (all equal)
NewChunkMergeIterator_Seek/scrapeInterval_10s_seekStep:_300s-10      6.02k ± 0%     6.02k ± 0%   ~     (all equal)
NewChunkMergeIterator_Seek/scrapeInterval_10s_seekStep:_500s-10      6.02k ± 0%     6.02k ± 0%   ~     (all equal)
NewChunkMergeIterator_Seek/scrapeInterval_10s_seekStep:_1000s-10     6.02k ± 0%     6.02k ± 0%   ~     (all equal)
NewChunkMergeIterator_Seek/scrapeInterval_10s_seekStep:_2000s-10     6.02k ± 0%     6.02k ± 0%   ~     (all equal)

@yeya24
Copy link
Collaborator Author

yeya24 commented May 15, 2024

My plan is to combine the two histogram arrays into one and use unsafe pointer to store them together. I will implement that and run the benchmark again.

@yeya24
Copy link
Collaborator Author

yeya24 commented May 15, 2024

Implemented the unsafe version. It is still worse than the version without support native histograms. But it is better than the version with two histogram arrays. I am going to switch to use the unsafe version.

name                                                                                                                              old time/op    new time/op    delta
NewChunkMergeIterator_CreateAndIterate/chunks:_1000_samples_per_chunk:_100_duplication_factor:_1_encoding:_PrometheusXorChunk-10    3.24ms ± 0%    3.18ms ± 5%   ~     (p=0.700 n=3+3)
NewChunkMergeIterator_CreateAndIterate/chunks:_1000_samples_per_chunk:_100_duplication_factor:_3_encoding:_PrometheusXorChunk-10    9.53ms ± 0%    9.11ms ± 1%   ~     (p=0.100 n=3+3)
NewChunkMergeIterator_CreateAndIterate/chunks:_100_samples_per_chunk:_100_duplication_factor:_1_encoding:_PrometheusXorChunk-10      327µs ± 0%     307µs ± 0%   ~     (p=0.100 n=3+3)
NewChunkMergeIterator_CreateAndIterate/chunks:_100_samples_per_chunk:_100_duplication_factor:_3_encoding:_PrometheusXorChunk-10      974µs ± 3%     901µs ± 0%   ~     (p=0.100 n=3+3)
NewChunkMergeIterator_CreateAndIterate/chunks:_1_samples_per_chunk:_100_duplication_factor:_1_encoding:_PrometheusXorChunk-10       4.49µs ± 0%    4.13µs ± 1%   ~     (p=0.100 n=3+3)
NewChunkMergeIterator_CreateAndIterate/chunks:_1_samples_per_chunk:_100_duplication_factor:_3_encoding:_PrometheusXorChunk-10       12.4µs ± 0%    11.3µs ± 0%   ~     (p=0.100 n=3+3)

name                                                                                                                              old alloc/op   new alloc/op   delta
NewChunkMergeIterator_CreateAndIterate/chunks:_1000_samples_per_chunk:_100_duplication_factor:_1_encoding:_PrometheusXorChunk-10     132kB ± 0%     131kB ± 0%   ~     (p=0.100 n=3+3)
NewChunkMergeIterator_CreateAndIterate/chunks:_1000_samples_per_chunk:_100_duplication_factor:_3_encoding:_PrometheusXorChunk-10     459kB ± 0%     458kB ± 0%   ~     (p=0.100 n=3+3)
NewChunkMergeIterator_CreateAndIterate/chunks:_100_samples_per_chunk:_100_duplication_factor:_1_encoding:_PrometheusXorChunk-10     15.9kB ± 0%    15.4kB ± 0%   ~     (p=0.100 n=3+3)
NewChunkMergeIterator_CreateAndIterate/chunks:_100_samples_per_chunk:_100_duplication_factor:_3_encoding:_PrometheusXorChunk-10     52.9kB ± 0%    51.9kB ± 0%   ~     (p=0.100 n=3+3)
NewChunkMergeIterator_CreateAndIterate/chunks:_1_samples_per_chunk:_100_duplication_factor:_1_encoding:_PrometheusXorChunk-10       2.68kB ± 0%    2.17kB ± 0%   ~     (p=0.100 n=3+3)
NewChunkMergeIterator_CreateAndIterate/chunks:_1_samples_per_chunk:_100_duplication_factor:_3_encoding:_PrometheusXorChunk-10       6.17kB ± 0%    5.14kB ± 0%   ~     (p=0.100 n=3+3)

name                                                                                                                              old allocs/op  new allocs/op  delta
NewChunkMergeIterator_CreateAndIterate/chunks:_1000_samples_per_chunk:_100_duplication_factor:_1_encoding:_PrometheusXorChunk-10     2.01k ± 0%     2.01k ± 0%   ~     (all equal)
NewChunkMergeIterator_CreateAndIterate/chunks:_1000_samples_per_chunk:_100_duplication_factor:_3_encoding:_PrometheusXorChunk-10     6.02k ± 0%     6.02k ± 0%   ~     (all equal)
NewChunkMergeIterator_CreateAndIterate/chunks:_100_samples_per_chunk:_100_duplication_factor:_1_encoding:_PrometheusXorChunk-10        213 ± 0%       213 ± 0%   ~     (all equal)
NewChunkMergeIterator_CreateAndIterate/chunks:_100_samples_per_chunk:_100_duplication_factor:_3_encoding:_PrometheusXorChunk-10        623 ± 0%       623 ± 0%   ~     (all equal)
NewChunkMergeIterator_CreateAndIterate/chunks:_1_samples_per_chunk:_100_duplication_factor:_1_encoding:_PrometheusXorChunk-10         15.0 ± 0%      15.0 ± 0%   ~     (all equal)
NewChunkMergeIterator_CreateAndIterate/chunks:_1_samples_per_chunk:_100_duplication_factor:_3_encoding:_PrometheusXorChunk-10         29.0 ± 0%      29.0 ± 0%   ~     (all equal)
name                                                              old time/op    new time/op    delta
NewChunkMergeIterator_Seek/scrapeInterval_30s_seekStep:_15s-10      11.5ms ± 3%    10.7ms ± 0%   ~     (p=0.100 n=3+3)
NewChunkMergeIterator_Seek/scrapeInterval_30s_seekStep:_30s-10      11.1ms ± 0%    10.4ms ± 0%   ~     (p=0.100 n=3+3)
NewChunkMergeIterator_Seek/scrapeInterval_30s_seekStep:_60s-10      11.0ms ± 0%    10.4ms ± 0%   ~     (p=0.100 n=3+3)
NewChunkMergeIterator_Seek/scrapeInterval_30s_seekStep:_300s-10     12.7ms ± 0%    11.8ms ± 0%   ~     (p=0.100 n=3+3)
NewChunkMergeIterator_Seek/scrapeInterval_30s_seekStep:_900s-10     11.7ms ± 0%    10.8ms ± 0%   ~     (p=0.100 n=3+3)
NewChunkMergeIterator_Seek/scrapeInterval_30s_seekStep:_1500s-10    9.85ms ± 0%    9.21ms ± 0%   ~     (p=0.100 n=3+3)
NewChunkMergeIterator_Seek/scrapeInterval_30s_seekStep:_3000s-10    4.60ms ± 0%    4.36ms ± 0%   ~     (p=0.100 n=3+3)
NewChunkMergeIterator_Seek/scrapeInterval_30s_seekStep:_6000s-10    1.61ms ± 0%    1.55ms ± 0%   ~     (p=0.100 n=3+3)
NewChunkMergeIterator_Seek/scrapeInterval_10s_seekStep:_5s-10       11.4ms ± 1%    10.8ms ± 1%   ~     (p=0.100 n=3+3)
NewChunkMergeIterator_Seek/scrapeInterval_10s_seekStep:_10s-10      11.3ms ± 1%    10.5ms ± 0%   ~     (p=0.100 n=3+3)
NewChunkMergeIterator_Seek/scrapeInterval_10s_seekStep:_20s-10      11.1ms ± 0%    10.4ms ± 0%   ~     (p=0.100 n=3+3)
NewChunkMergeIterator_Seek/scrapeInterval_10s_seekStep:_100s-10     12.7ms ± 1%    11.8ms ± 0%   ~     (p=0.100 n=3+3)
NewChunkMergeIterator_Seek/scrapeInterval_10s_seekStep:_300s-10     11.7ms ± 1%    10.9ms ± 0%   ~     (p=0.100 n=3+3)
NewChunkMergeIterator_Seek/scrapeInterval_10s_seekStep:_500s-10     9.91ms ± 0%    9.24ms ± 0%   ~     (p=0.100 n=3+3)
NewChunkMergeIterator_Seek/scrapeInterval_10s_seekStep:_1000s-10    4.63ms ± 0%    4.38ms ± 0%   ~     (p=0.100 n=3+3)
NewChunkMergeIterator_Seek/scrapeInterval_10s_seekStep:_2000s-10    1.62ms ± 0%    1.56ms ± 0%   ~     (p=0.100 n=3+3)

name                                                              old alloc/op   new alloc/op   delta
NewChunkMergeIterator_Seek/scrapeInterval_30s_seekStep:_15s-10       459kB ± 0%     458kB ± 0%   ~     (p=0.100 n=3+3)
NewChunkMergeIterator_Seek/scrapeInterval_30s_seekStep:_30s-10       459kB ± 0%     458kB ± 0%   ~     (p=0.100 n=3+3)
NewChunkMergeIterator_Seek/scrapeInterval_30s_seekStep:_60s-10       459kB ± 0%     458kB ± 0%   ~     (p=0.100 n=3+3)
NewChunkMergeIterator_Seek/scrapeInterval_30s_seekStep:_300s-10      459kB ± 0%     458kB ± 0%   ~     (p=0.100 n=3+3)
NewChunkMergeIterator_Seek/scrapeInterval_30s_seekStep:_900s-10      459kB ± 0%     458kB ± 0%   ~     (p=0.100 n=3+3)
NewChunkMergeIterator_Seek/scrapeInterval_30s_seekStep:_1500s-10     459kB ± 0%     458kB ± 0%   ~     (p=0.100 n=3+3)
NewChunkMergeIterator_Seek/scrapeInterval_30s_seekStep:_3000s-10     459kB ± 0%     458kB ± 0%   ~     (p=0.100 n=3+3)
NewChunkMergeIterator_Seek/scrapeInterval_30s_seekStep:_6000s-10     459kB ± 0%     458kB ± 0%   ~     (p=0.100 n=3+3)
NewChunkMergeIterator_Seek/scrapeInterval_10s_seekStep:_5s-10        459kB ± 0%     458kB ± 0%   ~     (p=0.100 n=3+3)
NewChunkMergeIterator_Seek/scrapeInterval_10s_seekStep:_10s-10       459kB ± 0%     458kB ± 0%   ~     (p=0.100 n=3+3)
NewChunkMergeIterator_Seek/scrapeInterval_10s_seekStep:_20s-10       459kB ± 0%     458kB ± 0%   ~     (p=0.100 n=3+3)
NewChunkMergeIterator_Seek/scrapeInterval_10s_seekStep:_100s-10      459kB ± 0%     458kB ± 0%   ~     (p=0.100 n=3+3)
NewChunkMergeIterator_Seek/scrapeInterval_10s_seekStep:_300s-10      459kB ± 0%     458kB ± 0%   ~     (p=0.100 n=3+3)
NewChunkMergeIterator_Seek/scrapeInterval_10s_seekStep:_500s-10      459kB ± 0%     458kB ± 0%   ~     (p=0.100 n=3+3)
NewChunkMergeIterator_Seek/scrapeInterval_10s_seekStep:_1000s-10     459kB ± 0%     458kB ± 0%   ~     (p=0.100 n=3+3)
NewChunkMergeIterator_Seek/scrapeInterval_10s_seekStep:_2000s-10     459kB ± 0%     458kB ± 0%   ~     (p=0.100 n=3+3)

name                                                              old allocs/op  new allocs/op  delta
NewChunkMergeIterator_Seek/scrapeInterval_30s_seekStep:_15s-10       6.02k ± 0%     6.02k ± 0%   ~     (all equal)
NewChunkMergeIterator_Seek/scrapeInterval_30s_seekStep:_30s-10       6.02k ± 0%     6.02k ± 0%   ~     (all equal)
NewChunkMergeIterator_Seek/scrapeInterval_30s_seekStep:_60s-10       6.02k ± 0%     6.02k ± 0%   ~     (all equal)
NewChunkMergeIterator_Seek/scrapeInterval_30s_seekStep:_300s-10      6.02k ± 0%     6.02k ± 0%   ~     (all equal)
NewChunkMergeIterator_Seek/scrapeInterval_30s_seekStep:_900s-10      6.02k ± 0%     6.02k ± 0%   ~     (all equal)
NewChunkMergeIterator_Seek/scrapeInterval_30s_seekStep:_1500s-10     6.02k ± 0%     6.02k ± 0%   ~     (all equal)
NewChunkMergeIterator_Seek/scrapeInterval_30s_seekStep:_3000s-10     6.02k ± 0%     6.02k ± 0%   ~     (all equal)
NewChunkMergeIterator_Seek/scrapeInterval_30s_seekStep:_6000s-10     6.02k ± 0%     6.02k ± 0%   ~     (all equal)
NewChunkMergeIterator_Seek/scrapeInterval_10s_seekStep:_5s-10        6.02k ± 0%     6.02k ± 0%   ~     (all equal)
NewChunkMergeIterator_Seek/scrapeInterval_10s_seekStep:_10s-10       6.02k ± 0%     6.02k ± 0%   ~     (all equal)
NewChunkMergeIterator_Seek/scrapeInterval_10s_seekStep:_20s-10       6.02k ± 0%     6.02k ± 0%   ~     (all equal)
NewChunkMergeIterator_Seek/scrapeInterval_10s_seekStep:_100s-10      6.02k ± 0%     6.02k ± 0%   ~     (all equal)
NewChunkMergeIterator_Seek/scrapeInterval_10s_seekStep:_300s-10      6.02k ± 0%     6.02k ± 0%   ~     (all equal)
NewChunkMergeIterator_Seek/scrapeInterval_10s_seekStep:_500s-10      6.02k ± 0%     6.02k ± 0%   ~     (all equal)
NewChunkMergeIterator_Seek/scrapeInterval_10s_seekStep:_1000s-10     6.02k ± 0%     6.02k ± 0%   ~     (all equal)
NewChunkMergeIterator_Seek/scrapeInterval_10s_seekStep:_2000s-10     6.02k ± 0%     6.02k ± 0%   ~     (all equal)

Signed-off-by: Ben Ye <benye@amazon.com>
Signed-off-by: Ben Ye <benye@amazon.com>
Signed-off-by: Ben Ye <benye@amazon.com>
@yeya24
Copy link
Collaborator Author

yeya24 commented May 16, 2024

Discussed with @alanprot and we think it is better to use the original version without unsafe pointer. We can optimize this code when needed.

@yeya24 yeya24 merged commit 1b7a5e0 into cortexproject:master May 16, 2024
16 checks passed
@yeya24 yeya24 deleted the implement-histogram-iterators branch May 16, 2024 00:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants