Skip to content

Conversation

charleskorn
Copy link
Contributor

@charleskorn charleskorn commented Aug 8, 2024

What this PR does

This PR applies the same technique as #8671 for binary operations.

This improves performance by up to 7% in our benchmarks, particularly for cases where not all series from a side are used. Peak memory utilisation is unchanged.

Benchmark results
goos: darwin
goarch: arm64
pkg: github.com/grafana/mimir/pkg/streamingpromql/benchmarks
                                                                                                                  │   main.txt    │             after.txt             │
                                                                                                                  │    sec/op     │   sec/op     vs base              │
Query/a_1_-_b_1,_instant_query/Mimir-10                                                                              287.4µ ±  2%   305.4µ ± 2%  +6.25% (p=0.002 n=6)
Query/a_1_-_b_1,_range_query_with_100_steps/Mimir-10                                                                 307.5µ ±  2%   309.9µ ± 1%       ~ (p=0.180 n=6)
Query/a_1_-_b_1,_range_query_with_1000_steps/Mimir-10                                                                456.7µ ±  1%   455.9µ ± 1%       ~ (p=1.000 n=6)
Query/a_100_-_b_100,_instant_query/Mimir-10                                                                          1.647m ±  1%   1.646m ± 1%       ~ (p=0.818 n=6)
Query/a_100_-_b_100,_range_query_with_100_steps/Mimir-10                                                             2.865m ±  1%   2.862m ± 2%       ~ (p=0.818 n=6)
Query/a_100_-_b_100,_range_query_with_1000_steps/Mimir-10                                                            13.64m ±  1%   13.74m ± 1%       ~ (p=0.093 n=6)
Query/a_2000_-_b_2000,_instant_query/Mimir-10                                                                        24.69m ±  1%   24.33m ± 1%  -1.48% (p=0.015 n=6)
Query/a_2000_-_b_2000,_range_query_with_100_steps/Mimir-10                                                           47.43m ±  1%   46.91m ± 0%  -1.09% (p=0.002 n=6)
Query/a_2000_-_b_2000,_range_query_with_1000_steps/Mimir-10                                                          250.3m ±  0%   250.4m ± 2%       ~ (p=0.699 n=6)
Query/a_1_-_b_1,_range_query_with_10000_steps/Mimir-10                                                               1.835m ±  1%   1.823m ± 2%       ~ (p=0.132 n=6)
Query/a_100_-_b_100,_range_query_with_10000_steps/Mimir-10                                                           118.7m ±  1%   119.0m ± 1%       ~ (p=0.180 n=6)
Query/a_2000_-_b_2000,_range_query_with_10000_steps/Mimir-10                                                          2.332 ± 10%    2.333 ± 1%       ~ (p=0.818 n=6)
Query/nh_1_+_nh_1,_instant_query/Mimir-10                                                                            290.6µ ±  6%   291.3µ ± 2%       ~ (p=0.818 n=6)
Query/nh_1_+_nh_1,_range_query_with_100_steps/Mimir-10                                                               435.2µ ±  1%   427.9µ ± 1%  -1.68% (p=0.004 n=6)
Query/nh_1_+_nh_1,_range_query_with_1000_steps/Mimir-10                                                              1.538m ±  1%   1.535m ± 2%       ~ (p=0.699 n=6)
Query/nh_100_+_nh_100,_instant_query/Mimir-10                                                                        3.835m ±  1%   3.797m ± 0%  -0.99% (p=0.004 n=6)
Query/nh_100_+_nh_100,_range_query_with_100_steps/Mimir-10                                                           15.01m ±  0%   14.83m ± 1%  -1.21% (p=0.002 n=6)
Query/nh_100_+_nh_100,_range_query_with_1000_steps/Mimir-10                                                          107.0m ±  1%   106.4m ± 1%       ~ (p=0.394 n=6)
Query/nh_2000_+_nh_2000,_instant_query/Mimir-10                                                                      67.07m ±  1%   66.88m ± 1%       ~ (p=0.699 n=6)
Query/nh_2000_+_nh_2000,_range_query_with_100_steps/Mimir-10                                                         269.9m ±  1%   270.8m ± 1%       ~ (p=1.000 n=6)
Query/nh_2000_+_nh_2000,_range_query_with_1000_steps/Mimir-10                                                         2.008 ±  1%    2.002 ± 2%       ~ (p=0.394 n=6)
Query/nh_1_/_a_1,_instant_query/Mimir-10                                                                             273.3µ ±  1%   273.4µ ± 1%       ~ (p=0.937 n=6)
Query/nh_1_/_a_1,_range_query_with_100_steps/Mimir-10                                                                356.9µ ±  3%   346.1µ ± 1%  -3.01% (p=0.002 n=6)
Query/nh_1_/_a_1,_range_query_with_1000_steps/Mimir-10                                                               1.050m ±  1%   1.035m ± 1%  -1.42% (p=0.002 n=6)
Query/nh_100_/_a_100,_instant_query/Mimir-10                                                                         2.798m ±  6%   2.741m ± 0%  -2.04% (p=0.002 n=6)
Query/nh_100_/_a_100,_range_query_with_100_steps/Mimir-10                                                            9.367m ±  7%   9.115m ± 1%  -2.70% (p=0.002 n=6)
Query/nh_100_/_a_100,_range_query_with_1000_steps/Mimir-10                                                           64.06m ±  4%   60.03m ± 2%  -6.29% (p=0.002 n=6)
Query/nh_2000_/_a_2000,_instant_query/Mimir-10                                                                       47.05m ±  1%   45.92m ± 0%  -2.41% (p=0.002 n=6)
Query/nh_2000_/_a_2000,_range_query_with_100_steps/Mimir-10                                                          165.1m ±  1%   159.3m ± 1%  -3.51% (p=0.002 n=6)
Query/nh_2000_/_a_2000,_range_query_with_1000_steps/Mimir-10                                                          1.208 ±  2%    1.169 ± 1%  -3.19% (p=0.002 n=6)
Query/a_100{l=~"[13579]."}_-_b_100,_instant_query/Mimir-10                                                           1.632m ±  1%   1.600m ± 1%  -2.00% (p=0.002 n=6)
Query/a_100{l=~"[13579]."}_-_b_100,_range_query_with_100_steps/Mimir-10                                              2.713m ±  1%   2.654m ± 1%  -2.19% (p=0.002 n=6)
Query/a_100{l=~"[13579]."}_-_b_100,_range_query_with_1000_steps/Mimir-10                                             12.38m ±  0%   12.06m ± 1%  -2.58% (p=0.002 n=6)
Query/a_2000{l=~"1..."}_-_b_2000,_instant_query/Mimir-10                                                             16.24m ±  1%   15.52m ± 1%  -4.42% (p=0.002 n=6)
Query/a_2000{l=~"1..."}_-_b_2000,_range_query_with_100_steps/Mimir-10                                                29.79m ±  6%   29.09m ± 1%  -2.35% (p=0.002 n=6)
Query/a_2000{l=~"1..."}_-_b_2000,_range_query_with_1000_steps/Mimir-10                                               153.4m ±  4%   150.8m ± 1%  -1.72% (p=0.015 n=6)
Query/a_2000{l="1234"}_-_b_2000,_instant_query/Mimir-10                                                              6.585m ±  4%   6.123m ± 1%  -7.01% (p=0.002 n=6)
Query/a_2000{l="1234"}_-_b_2000,_range_query_with_100_steps/Mimir-10                                                 9.795m ±  9%   9.580m ± 1%  -2.20% (p=0.002 n=6)
Query/a_2000{l="1234"}_-_b_2000,_range_query_with_1000_steps/Mimir-10                                                46.86m ±  1%   46.51m ± 2%  -0.75% (p=0.041 n=6)
Query/a_2000_-_b_2000{l="1234"},_instant_query/Mimir-10                                                              6.324m ±  1%   6.068m ± 1%  -4.04% (p=0.002 n=6)
Query/a_2000_-_b_2000{l="1234"},_range_query_with_100_steps/Mimir-10                                                 9.671m ±  1%   9.400m ± 1%  -2.80% (p=0.002 n=6)
Query/a_2000_-_b_2000{l="1234"},_range_query_with_1000_steps/Mimir-10                                                46.05m ±  1%   45.68m ± 1%       ~ (p=0.093 n=6)
Query/rate(a_1[1m])_+_rate(b_1[1m]),_instant_query/Mimir-10                                                          242.7µ ±  1%   247.2µ ± 3%  +1.86% (p=0.002 n=6)
Query/rate(a_1[1m])_+_rate(b_1[1m]),_range_query_with_100_steps/Mimir-10                                             268.7µ ±  1%   274.5µ ± 1%  +2.14% (p=0.002 n=6)
Query/rate(a_1[1m])_+_rate(b_1[1m]),_range_query_with_1000_steps/Mimir-10                                            432.9µ ±  9%   438.3µ ± 1%       ~ (p=0.240 n=6)
Query/rate(a_100[1m])_+_rate(b_100[1m]),_instant_query/Mimir-10                                                      865.1µ ±  4%   852.7µ ± 5%  -1.42% (p=0.041 n=6)
Query/rate(a_100[1m])_+_rate(b_100[1m]),_range_query_with_100_steps/Mimir-10                                         2.346m ±  0%   2.376m ± 1%  +1.25% (p=0.015 n=6)
Query/rate(a_100[1m])_+_rate(b_100[1m]),_range_query_with_1000_steps/Mimir-10                                        15.90m ±  6%   15.48m ± 2%       ~ (p=0.394 n=6)
Query/rate(a_2000[1m])_+_rate(b_2000[1m]),_instant_query/Mimir-10                                                   10.096m ±  2%   9.663m ± 4%  -4.29% (p=0.015 n=6)
Query/rate(a_2000[1m])_+_rate(b_2000[1m]),_range_query_with_100_steps/Mimir-10                                       39.30m ±  6%   38.95m ± 0%       ~ (p=0.065 n=6)
Query/rate(a_2000[1m])_+_rate(b_2000[1m]),_range_query_with_1000_steps/Mimir-10                                      291.4m ±  2%   289.9m ± 2%       ~ (p=0.699 n=6)
Query/sum(a_1_+_b_1),_instant_query/Mimir-10                                                                         267.2µ ±  2%   279.0µ ± 4%  +4.41% (p=0.009 n=6)
Query/sum(a_1_+_b_1),_range_query_with_100_steps/Mimir-10                                                            294.8µ ±  3%   292.8µ ± 2%       ~ (p=0.818 n=6)
Query/sum(a_1_+_b_1),_range_query_with_1000_steps/Mimir-10                                                           454.4µ ± 45%   424.4µ ± 2%  -6.62% (p=0.004 n=6)
Query/sum(a_100_+_b_100),_instant_query/Mimir-10                                                                     1.640m ±  1%   1.620m ± 1%  -1.23% (p=0.009 n=6)
Query/sum(a_100_+_b_100),_range_query_with_100_steps/Mimir-10                                                        2.883m ±  1%   2.860m ± 1%  -0.80% (p=0.041 n=6)
Query/sum(a_100_+_b_100),_range_query_with_1000_steps/Mimir-10                                                       14.08m ±  3%   13.95m ± 2%       ~ (p=0.065 n=6)
Query/sum(a_2000_+_b_2000),_instant_query/Mimir-10                                                                   25.16m ±  4%   24.87m ± 9%       ~ (p=0.093 n=6)
Query/sum(a_2000_+_b_2000),_range_query_with_100_steps/Mimir-10                                                      48.10m ±  2%   47.89m ± 9%       ~ (p=0.818 n=6)
Query/sum(a_2000_+_b_2000),_range_query_with_1000_steps/Mimir-10                                                     260.7m ±  3%   260.0m ± 1%       ~ (p=0.485 n=6)
Query/sum_without_(l)(rate(a_1[1m]))_/_sum_without_(l)(rate(b_1[1m])),_instant_query/Mimir-10                        256.6µ ±  3%   251.7µ ± 1%       ~ (p=0.132 n=6)
Query/sum_without_(l)(rate(a_1[1m]))_/_sum_without_(l)(rate(b_1[1m])),_range_query_with_100_steps/Mimir-10           286.2µ ±  3%   279.5µ ± 1%       ~ (p=0.180 n=6)
Query/sum_without_(l)(rate(a_1[1m]))_/_sum_without_(l)(rate(b_1[1m])),_range_query_with_1000_steps/Mimir-10          451.5µ ±  2%   451.9µ ± 1%       ~ (p=0.818 n=6)
Query/sum_without_(l)(rate(a_100[1m]))_/_sum_without_(l)(rate(b_100[1m])),_instant_query/Mimir-10                    803.3µ ±  5%   801.2µ ± 5%  -0.27% (p=0.041 n=6)
Query/sum_without_(l)(rate(a_100[1m]))_/_sum_without_(l)(rate(b_100[1m])),_range_query_with_100_steps/Mimir-10       2.186m ±  0%   2.184m ± 2%       ~ (p=0.818 n=6)
Query/sum_without_(l)(rate(a_100[1m]))_/_sum_without_(l)(rate(b_100[1m])),_range_query_with_1000_steps/Mimir-10      14.36m ±  0%   14.30m ± 1%       ~ (p=0.310 n=6)
Query/sum_without_(l)(rate(a_2000[1m]))_/_sum_without_(l)(rate(b_2000[1m])),_instant_query/Mimir-10                  8.398m ± 13%   8.372m ± 1%       ~ (p=0.132 n=6)
Query/sum_without_(l)(rate(a_2000[1m]))_/_sum_without_(l)(rate(b_2000[1m])),_range_query_with_100_steps/Mimir-10     38.25m ±  5%   36.01m ± 0%  -5.86% (p=0.002 n=6)
Query/sum_without_(l)(rate(a_2000[1m]))_/_sum_without_(l)(rate(b_2000[1m])),_range_query_with_1000_steps/Mimir-10    282.9m ±  3%   276.0m ± 1%  -2.43% (p=0.002 n=6)
geomean                                                                                                              7.594m         7.502m       -1.21%

                                                                                                                  │    main.txt    │              after.txt               │
                                                                                                                  │      B/op      │     B/op       vs base               │
Query/a_1_-_b_1,_instant_query/Mimir-10                                                                              42.51Ki ±  0%   43.50Ki ±  0%   +2.34% (p=0.002 n=6)
Query/a_1_-_b_1,_range_query_with_100_steps/Mimir-10                                                                 45.65Ki ±  0%   46.65Ki ±  0%   +2.18% (p=0.002 n=6)
Query/a_1_-_b_1,_range_query_with_1000_steps/Mimir-10                                                                69.34Ki ±  0%   70.32Ki ±  0%   +1.41% (p=0.002 n=6)
Query/a_100_-_b_100,_instant_query/Mimir-10                                                                          345.0Ki ±  0%   340.8Ki ±  0%   -1.23% (p=0.002 n=6)
Query/a_100_-_b_100,_range_query_with_100_steps/Mimir-10                                                             660.7Ki ±  0%   656.1Ki ±  0%   -0.69% (p=0.002 n=6)
Query/a_100_-_b_100,_range_query_with_1000_steps/Mimir-10                                                            2.900Mi ±  0%   2.895Mi ±  0%   -0.17% (p=0.041 n=6)
Query/a_2000_-_b_2000,_instant_query/Mimir-10                                                                        6.059Mi ±  0%   5.938Mi ±  0%   -2.00% (p=0.002 n=6)
Query/a_2000_-_b_2000,_range_query_with_100_steps/Mimir-10                                                           12.11Mi ±  0%   11.97Mi ±  1%   -1.16% (p=0.002 n=6)
Query/a_2000_-_b_2000,_range_query_with_1000_steps/Mimir-10                                                          57.05Mi ±  0%   56.91Mi ±  1%        ~ (p=0.485 n=6)
Query/a_1_-_b_1,_range_query_with_10000_steps/Mimir-10                                                               443.6Ki ±  1%   444.9Ki ±  0%        ~ (p=0.394 n=6)
Query/a_100_-_b_100,_range_query_with_10000_steps/Mimir-10                                                           36.04Mi ±  0%   36.09Mi ±  0%        ~ (p=0.065 n=6)
Query/a_2000_-_b_2000,_range_query_with_10000_steps/Mimir-10                                                         1.191Gi ±  0%   1.192Gi ±  0%        ~ (p=0.485 n=6)
Query/nh_1_+_nh_1,_instant_query/Mimir-10                                                                            74.29Ki ±  0%   75.29Ki ±  0%   +1.35% (p=0.002 n=6)
Query/nh_1_+_nh_1,_range_query_with_100_steps/Mimir-10                                                               211.1Ki ±  0%   212.1Ki ±  0%   +0.48% (p=0.002 n=6)
Query/nh_1_+_nh_1,_range_query_with_1000_steps/Mimir-10                                                              1.343Mi ±  0%   1.344Mi ±  0%   +0.05% (p=0.002 n=6)
Query/nh_100_+_nh_100,_instant_query/Mimir-10                                                                        1.955Mi ±  0%   1.950Mi ±  0%   -0.26% (p=0.002 n=6)
Query/nh_100_+_nh_100,_range_query_with_100_steps/Mimir-10                                                           14.58Mi ±  0%   14.57Mi ±  0%   -0.04% (p=0.004 n=6)
Query/nh_100_+_nh_100,_range_query_with_1000_steps/Mimir-10                                                          127.7Mi ±  0%   127.7Mi ±  0%        ~ (p=0.818 n=6)
Query/nh_2000_+_nh_2000,_instant_query/Mimir-10                                                                      38.13Mi ±  1%   38.07Mi ±  1%        ~ (p=0.240 n=6)
Query/nh_2000_+_nh_2000,_range_query_with_100_steps/Mimir-10                                                         291.9Mi ±  0%   291.5Mi ±  0%        ~ (p=0.132 n=6)
Query/nh_2000_+_nh_2000,_range_query_with_1000_steps/Mimir-10                                                        2.515Gi ±  0%   2.515Gi ±  0%        ~ (p=1.000 n=6)
Query/nh_1_/_a_1,_instant_query/Mimir-10                                                                             58.52Ki ±  0%   59.52Ki ±  0%   +1.71% (p=0.002 n=6)
Query/nh_1_/_a_1,_range_query_with_100_steps/Mimir-10                                                                139.1Ki ±  0%   140.1Ki ±  0%   +0.71% (p=0.002 n=6)
Query/nh_1_/_a_1,_range_query_with_1000_steps/Mimir-10                                                               833.8Ki ±  0%   834.5Ki ±  0%   +0.08% (p=0.009 n=6)
Query/nh_100_/_a_100,_instant_query/Mimir-10                                                                         1.159Mi ±  0%   1.155Mi ±  0%   -0.42% (p=0.002 n=6)
Query/nh_100_/_a_100,_range_query_with_100_steps/Mimir-10                                                            8.652Mi ±  0%   8.646Mi ±  0%   -0.06% (p=0.002 n=6)
Query/nh_100_/_a_100,_range_query_with_1000_steps/Mimir-10                                                           76.48Mi ±  0%   76.46Mi ±  0%        ~ (p=0.937 n=6)
Query/nh_2000_/_a_2000,_instant_query/Mimir-10                                                                       22.37Mi ±  1%   22.25Mi ±  0%   -0.55% (p=0.002 n=6)
Query/nh_2000_/_a_2000,_range_query_with_100_steps/Mimir-10                                                          174.1Mi ±  0%   174.0Mi ±  0%        ~ (p=0.394 n=6)
Query/nh_2000_/_a_2000,_range_query_with_1000_steps/Mimir-10                                                         1.510Gi ±  0%   1.510Gi ±  0%        ~ (p=0.310 n=6)
Query/a_100{l=~"[13579]."}_-_b_100,_instant_query/Mimir-10                                                           264.3Ki ±  0%   260.4Ki ±  0%   -1.45% (p=0.002 n=6)
Query/a_100{l=~"[13579]."}_-_b_100,_range_query_with_100_steps/Mimir-10                                              446.9Ki ±  0%   443.4Ki ±  0%   -0.76% (p=0.002 n=6)
Query/a_100{l=~"[13579]."}_-_b_100,_range_query_with_1000_steps/Mimir-10                                             1.788Mi ±  0%   1.786Mi ±  0%        ~ (p=0.240 n=6)
Query/a_2000{l=~"1..."}_-_b_2000,_instant_query/Mimir-10                                                             4.084Mi ±  0%   3.978Mi ±  0%   -2.60% (p=0.002 n=6)
Query/a_2000{l=~"1..."}_-_b_2000,_range_query_with_100_steps/Mimir-10                                                7.471Mi ±  0%   7.366Mi ±  0%   -1.41% (p=0.002 n=6)
Query/a_2000{l=~"1..."}_-_b_2000,_range_query_with_1000_steps/Mimir-10                                               32.69Mi ±  0%   32.61Mi ±  0%   -0.25% (p=0.002 n=6)
Query/a_2000{l="1234"}_-_b_2000,_instant_query/Mimir-10                                                              1.799Mi ± 17%   1.744Mi ± 11%        ~ (p=0.240 n=6)
Query/a_2000{l="1234"}_-_b_2000,_range_query_with_100_steps/Mimir-10                                                 2.296Mi ± 22%   2.141Mi ± 11%   -6.76% (p=0.026 n=6)
Query/a_2000{l="1234"}_-_b_2000,_range_query_with_1000_steps/Mimir-10                                                6.653Mi ±  1%   6.598Mi ±  1%   -0.83% (p=0.041 n=6)
Query/a_2000_-_b_2000{l="1234"},_instant_query/Mimir-10                                                              2.048Mi ±  7%   1.839Mi ±  8%  -10.22% (p=0.009 n=6)
Query/a_2000_-_b_2000{l="1234"},_range_query_with_100_steps/Mimir-10                                                 2.220Mi ± 26%   2.269Mi ± 11%        ~ (p=0.394 n=6)
Query/a_2000_-_b_2000{l="1234"},_range_query_with_1000_steps/Mimir-10                                                6.633Mi ±  1%   6.562Mi ±  1%   -1.07% (p=0.002 n=6)
Query/rate(a_1[1m])_+_rate(b_1[1m]),_instant_query/Mimir-10                                                          43.42Ki ±  0%   44.45Ki ±  0%   +2.37% (p=0.002 n=6)
Query/rate(a_1[1m])_+_rate(b_1[1m]),_range_query_with_100_steps/Mimir-10                                             46.31Ki ±  0%   47.34Ki ±  0%   +2.23% (p=0.002 n=6)
Query/rate(a_1[1m])_+_rate(b_1[1m]),_range_query_with_1000_steps/Mimir-10                                            70.41Ki ±  0%   71.52Ki ±  0%   +1.59% (p=0.002 n=6)
Query/rate(a_100[1m])_+_rate(b_100[1m]),_instant_query/Mimir-10                                                      258.7Ki ±  0%   257.5Ki ±  0%   -0.46% (p=0.002 n=6)
Query/rate(a_100[1m])_+_rate(b_100[1m]),_range_query_with_100_steps/Mimir-10                                         550.7Ki ±  0%   548.7Ki ±  0%   -0.35% (p=0.002 n=6)
Query/rate(a_100[1m])_+_rate(b_100[1m]),_range_query_with_1000_steps/Mimir-10                                        2.844Mi ±  0%   2.844Mi ±  0%        ~ (p=0.937 n=6)
Query/rate(a_2000[1m])_+_rate(b_2000[1m]),_instant_query/Mimir-10                                                    4.334Mi ±  0%   4.259Mi ±  0%   -1.71% (p=0.002 n=6)
Query/rate(a_2000[1m])_+_rate(b_2000[1m]),_range_query_with_100_steps/Mimir-10                                      10.047Mi ±  0%   9.955Mi ±  0%   -0.91% (p=0.002 n=6)
Query/rate(a_2000[1m])_+_rate(b_2000[1m]),_range_query_with_1000_steps/Mimir-10                                      55.90Mi ±  0%   55.73Mi ±  0%   -0.31% (p=0.041 n=6)
Query/sum(a_1_+_b_1),_instant_query/Mimir-10                                                                         42.92Ki ±  0%   43.93Ki ±  0%   +2.34% (p=0.002 n=6)
Query/sum(a_1_+_b_1),_range_query_with_100_steps/Mimir-10                                                            46.09Ki ±  0%   47.10Ki ±  0%   +2.17% (p=0.002 n=6)
Query/sum(a_1_+_b_1),_range_query_with_1000_steps/Mimir-10                                                           69.94Ki ±  0%   70.99Ki ±  0%   +1.49% (p=0.002 n=6)
Query/sum(a_100_+_b_100),_instant_query/Mimir-10                                                                     346.3Ki ±  0%   342.0Ki ±  0%   -1.24% (p=0.002 n=6)
Query/sum(a_100_+_b_100),_range_query_with_100_steps/Mimir-10                                                        660.1Ki ±  0%   655.4Ki ±  0%   -0.71% (p=0.002 n=6)
Query/sum(a_100_+_b_100),_range_query_with_1000_steps/Mimir-10                                                       2.907Mi ±  0%   2.903Mi ±  0%   -0.15% (p=0.009 n=6)
Query/sum(a_2000_+_b_2000),_instant_query/Mimir-10                                                                   6.045Mi ±  0%   5.907Mi ±  0%   -2.27% (p=0.002 n=6)
Query/sum(a_2000_+_b_2000),_range_query_with_100_steps/Mimir-10                                                      12.02Mi ±  0%   11.89Mi ±  0%   -1.11% (p=0.002 n=6)
Query/sum(a_2000_+_b_2000),_range_query_with_1000_steps/Mimir-10                                                     58.68Mi ±  1%   58.01Mi ±  1%        ~ (p=0.065 n=6)
Query/sum_without_(l)(rate(a_1[1m]))_/_sum_without_(l)(rate(b_1[1m])),_instant_query/Mimir-10                        47.21Ki ±  0%   48.24Ki ±  0%   +2.18% (p=0.002 n=6)
Query/sum_without_(l)(rate(a_1[1m]))_/_sum_without_(l)(rate(b_1[1m])),_range_query_with_100_steps/Mimir-10           50.14Ki ±  0%   51.18Ki ±  0%   +2.08% (p=0.002 n=6)
Query/sum_without_(l)(rate(a_1[1m]))_/_sum_without_(l)(rate(b_1[1m])),_range_query_with_1000_steps/Mimir-10          74.52Ki ±  0%   75.64Ki ±  0%   +1.51% (p=0.002 n=6)
Query/sum_without_(l)(rate(a_100[1m]))_/_sum_without_(l)(rate(b_100[1m])),_instant_query/Mimir-10                    242.4Ki ±  0%   243.3Ki ±  0%   +0.35% (p=0.002 n=6)
Query/sum_without_(l)(rate(a_100[1m]))_/_sum_without_(l)(rate(b_100[1m])),_range_query_with_100_steps/Mimir-10       332.1Ki ±  0%   333.0Ki ±  0%   +0.27% (p=0.002 n=6)
Query/sum_without_(l)(rate(a_100[1m]))_/_sum_without_(l)(rate(b_100[1m])),_range_query_with_1000_steps/Mimir-10      1.279Mi ±  0%   1.280Mi ±  1%        ~ (p=0.699 n=6)
Query/sum_without_(l)(rate(a_2000[1m]))_/_sum_without_(l)(rate(b_2000[1m])),_instant_query/Mimir-10                  3.799Mi ±  0%   3.799Mi ±  0%        ~ (p=0.937 n=6)
Query/sum_without_(l)(rate(a_2000[1m]))_/_sum_without_(l)(rate(b_2000[1m])),_range_query_with_100_steps/Mimir-10     5.515Mi ±  0%   5.515Mi ±  0%        ~ (p=0.937 n=6)
Query/sum_without_(l)(rate(a_2000[1m]))_/_sum_without_(l)(rate(b_2000[1m])),_range_query_with_1000_steps/Mimir-10    24.21Mi ±  1%   24.14Mi ±  1%        ~ (p=1.000 n=6)
geomean                                                                                                              2.109Mi         2.104Mi         -0.23%

                                                                                                                  │   main.txt   │              after.txt               │
                                                                                                                  │  allocs/op   │  allocs/op   vs base                 │
Query/a_1_-_b_1,_instant_query/Mimir-10                                                                              737.0 ±  0%    735.0 ± 0%   -0.27% (p=0.002 n=6)
Query/a_1_-_b_1,_range_query_with_100_steps/Mimir-10                                                                 746.0 ±  0%    744.0 ± 0%   -0.27% (p=0.002 n=6)
Query/a_1_-_b_1,_range_query_with_1000_steps/Mimir-10                                                                810.0 ±  0%    808.0 ± 0%   -0.25% (p=0.002 n=6)
Query/a_100_-_b_100,_instant_query/Mimir-10                                                                         5.456k ±  0%   5.158k ± 0%   -5.46% (p=0.002 n=6)
Query/a_100_-_b_100,_range_query_with_100_steps/Mimir-10                                                            6.278k ±  0%   5.980k ± 0%   -4.75% (p=0.002 n=6)
Query/a_100_-_b_100,_range_query_with_1000_steps/Mimir-10                                                           12.70k ±  0%   12.41k ± 0%   -2.35% (p=0.002 n=6)
Query/a_2000_-_b_2000,_instant_query/Mimir-10                                                                       95.72k ±  0%   89.72k ± 0%   -6.27% (p=0.002 n=6)
Query/a_2000_-_b_2000,_range_query_with_100_steps/Mimir-10                                                          111.8k ±  0%   105.8k ± 0%   -5.37% (p=0.002 n=6)
Query/a_2000_-_b_2000,_range_query_with_1000_steps/Mimir-10                                                         240.0k ±  0%   234.0k ± 0%   -2.50% (p=0.002 n=6)
Query/a_1_-_b_1,_range_query_with_10000_steps/Mimir-10                                                              1.421k ±  0%   1.420k ± 0%   -0.07% (p=0.002 n=6)
Query/a_100_-_b_100,_range_query_with_10000_steps/Mimir-10                                                          72.85k ±  0%   72.56k ± 0%   -0.40% (p=0.002 n=6)
Query/a_2000_-_b_2000,_range_query_with_10000_steps/Mimir-10                                                        1.448M ±  0%   1.442M ± 0%   -0.41% (p=0.002 n=6)
Query/nh_1_+_nh_1,_instant_query/Mimir-10                                                                           1.271k ±  0%   1.269k ± 0%   -0.16% (p=0.002 n=6)
Query/nh_1_+_nh_1,_range_query_with_100_steps/Mimir-10                                                              3.918k ±  0%   3.916k ± 0%   -0.05% (p=0.002 n=6)
Query/nh_1_+_nh_1,_range_query_with_1000_steps/Mimir-10                                                             26.58k ±  0%   26.57k ± 0%   -0.01% (p=0.002 n=6)
Query/nh_100_+_nh_100,_instant_query/Mimir-10                                                                       39.00k ±  0%   38.71k ± 0%   -0.75% (p=0.002 n=6)
Query/nh_100_+_nh_100,_range_query_with_100_steps/Mimir-10                                                          290.9k ±  0%   290.6k ± 0%   -0.10% (p=0.002 n=6)
Query/nh_100_+_nh_100,_range_query_with_1000_steps/Mimir-10                                                         2.556M ±  0%   2.555M ± 0%   -0.01% (p=0.002 n=6)
Query/nh_2000_+_nh_2000,_instant_query/Mimir-10                                                                     762.5k ±  0%   756.5k ± 0%   -0.78% (p=0.002 n=6)
Query/nh_2000_+_nh_2000,_range_query_with_100_steps/Mimir-10                                                        5.798M ±  0%   5.792M ± 0%   -0.10% (p=0.002 n=6)
Query/nh_2000_+_nh_2000,_range_query_with_1000_steps/Mimir-10                                                       51.09M ±  0%   51.08M ± 0%   -0.01% (p=0.002 n=6)
Query/nh_1_/_a_1,_instant_query/Mimir-10                                                                            1.005k ±  0%   1.003k ± 0%   -0.20% (p=0.002 n=6)
Query/nh_1_/_a_1,_range_query_with_100_steps/Mimir-10                                                               2.584k ±  0%   2.582k ± 0%   -0.08% (p=0.002 n=6)
Query/nh_1_/_a_1,_range_query_with_1000_steps/Mimir-10                                                              16.20k ±  0%   16.20k ± 0%   -0.01% (p=0.004 n=6)
Query/nh_100_/_a_100,_instant_query/Mimir-10                                                                        22.38k ±  0%   22.08k ± 0%   -1.32% (p=0.002 n=6)
Query/nh_100_/_a_100,_range_query_with_100_steps/Mimir-10                                                           173.7k ±  0%   173.4k ± 0%   -0.17% (p=0.002 n=6)
Query/nh_100_/_a_100,_range_query_with_1000_steps/Mimir-10                                                          1.534M ±  0%   1.534M ± 0%   -0.02% (p=0.002 n=6)
Query/nh_2000_/_a_2000,_instant_query/Mimir-10                                                                      432.0k ±  0%   426.0k ± 0%   -1.39% (p=0.002 n=6)
Query/nh_2000_/_a_2000,_range_query_with_100_steps/Mimir-10                                                         3.459M ±  0%   3.453M ± 0%   -0.17% (p=0.002 n=6)
Query/nh_2000_/_a_2000,_range_query_with_1000_steps/Mimir-10                                                        30.67M ±  0%   30.67M ± 0%   -0.02% (p=0.002 n=6)
Query/a_100{l=~"[13579]."}_-_b_100,_instant_query/Mimir-10                                                          4.152k ±  0%   3.904k ± 0%   -5.97% (p=0.002 n=6)
Query/a_100{l=~"[13579]."}_-_b_100,_range_query_with_100_steps/Mimir-10                                             4.769k ±  0%   4.520k ± 0%   -5.22% (p=0.002 n=6)
Query/a_100{l=~"[13579]."}_-_b_100,_range_query_with_1000_steps/Mimir-10                                            9.595k ±  0%   9.345k ± 0%   -2.60% (p=0.002 n=6)
Query/a_2000{l=~"1..."}_-_b_2000,_instant_query/Mimir-10                                                            59.69k ±  0%   54.69k ± 0%   -8.36% (p=0.002 n=6)
Query/a_2000{l=~"1..."}_-_b_2000,_range_query_with_100_steps/Mimir-10                                               69.10k ±  0%   64.10k ± 0%   -7.24% (p=0.002 n=6)
Query/a_2000{l=~"1..."}_-_b_2000,_range_query_with_1000_steps/Mimir-10                                              138.5k ±  0%   133.5k ± 0%   -3.61% (p=0.002 n=6)
Query/a_2000{l="1234"}_-_b_2000,_instant_query/Mimir-10                                                             22.12k ±  8%   18.23k ± 6%  -17.60% (p=0.002 n=6)
Query/a_2000{l="1234"}_-_b_2000,_range_query_with_100_steps/Mimir-10                                                24.18k ± 10%   19.89k ± 5%  -17.72% (p=0.002 n=6)
Query/a_2000{l="1234"}_-_b_2000,_range_query_with_1000_steps/Mimir-10                                               35.24k ±  0%   31.23k ± 0%  -11.37% (p=0.002 n=6)
Query/a_2000_-_b_2000{l="1234"},_instant_query/Mimir-10                                                             23.41k ±  3%   18.63k ± 4%  -20.42% (p=0.002 n=6)
Query/a_2000_-_b_2000{l="1234"},_range_query_with_100_steps/Mimir-10                                                23.89k ± 11%   20.40k ± 5%  -14.62% (p=0.002 n=6)
Query/a_2000_-_b_2000{l="1234"},_range_query_with_1000_steps/Mimir-10                                               35.22k ±  0%   31.23k ± 0%  -11.33% (p=0.002 n=6)
Query/rate(a_1[1m])_+_rate(b_1[1m]),_instant_query/Mimir-10                                                          776.0 ±  0%    776.0 ± 0%        ~ (p=1.000 n=6) ¹
Query/rate(a_1[1m])_+_rate(b_1[1m]),_range_query_with_100_steps/Mimir-10                                             784.0 ±  0%    784.0 ± 0%        ~ (p=1.000 n=6) ¹
Query/rate(a_1[1m])_+_rate(b_1[1m]),_range_query_with_1000_steps/Mimir-10                                            851.0 ±  0%    851.0 ± 0%        ~ (p=1.000 n=6) ¹
Query/rate(a_100[1m])_+_rate(b_100[1m]),_instant_query/Mimir-10                                                     4.696k ±  0%   4.399k ± 0%   -6.34% (p=0.002 n=6)
Query/rate(a_100[1m])_+_rate(b_100[1m]),_range_query_with_100_steps/Mimir-10                                        5.514k ±  0%   5.216k ± 0%   -5.40% (p=0.002 n=6)
Query/rate(a_100[1m])_+_rate(b_100[1m]),_range_query_with_1000_steps/Mimir-10                                       12.16k ±  0%   11.86k ± 0%   -2.45% (p=0.002 n=6)
Query/rate(a_2000[1m])_+_rate(b_2000[1m]),_instant_query/Mimir-10                                                   79.66k ±  0%   73.65k ± 0%   -7.55% (p=0.002 n=6)
Query/rate(a_2000[1m])_+_rate(b_2000[1m]),_range_query_with_100_steps/Mimir-10                                      95.80k ±  0%   89.80k ± 0%   -6.27% (p=0.002 n=6)
Query/rate(a_2000[1m])_+_rate(b_2000[1m]),_range_query_with_1000_steps/Mimir-10                                     228.0k ±  0%   222.1k ± 0%   -2.62% (p=0.002 n=6)
Query/sum(a_1_+_b_1),_instant_query/Mimir-10                                                                         746.0 ±  0%    744.0 ± 0%   -0.27% (p=0.002 n=6)
Query/sum(a_1_+_b_1),_range_query_with_100_steps/Mimir-10                                                            755.0 ±  0%    753.0 ± 0%   -0.26% (p=0.002 n=6)
Query/sum(a_1_+_b_1),_range_query_with_1000_steps/Mimir-10                                                           820.0 ±  0%    818.0 ± 0%   -0.24% (p=0.002 n=6)
Query/sum(a_100_+_b_100),_instant_query/Mimir-10                                                                    5.467k ±  0%   5.169k ± 0%   -5.45% (p=0.002 n=6)
Query/sum(a_100_+_b_100),_range_query_with_100_steps/Mimir-10                                                       6.287k ±  0%   5.989k ± 0%   -4.74% (p=0.002 n=6)
Query/sum(a_100_+_b_100),_range_query_with_1000_steps/Mimir-10                                                      12.72k ±  0%   12.42k ± 0%   -2.33% (p=0.002 n=6)
Query/sum(a_2000_+_b_2000),_instant_query/Mimir-10                                                                  95.72k ±  0%   89.73k ± 0%   -6.27% (p=0.002 n=6)
Query/sum(a_2000_+_b_2000),_range_query_with_100_steps/Mimir-10                                                     111.8k ±  0%   105.8k ± 0%   -5.36% (p=0.002 n=6)
Query/sum(a_2000_+_b_2000),_range_query_with_1000_steps/Mimir-10                                                    240.3k ±  0%   234.3k ± 0%   -2.51% (p=0.002 n=6)
Query/sum_without_(l)(rate(a_1[1m]))_/_sum_without_(l)(rate(b_1[1m])),_instant_query/Mimir-10                        810.0 ±  0%    810.0 ± 0%        ~ (p=1.000 n=6) ¹
Query/sum_without_(l)(rate(a_1[1m]))_/_sum_without_(l)(rate(b_1[1m])),_range_query_with_100_steps/Mimir-10           818.5 ±  0%    819.0 ± 0%        ~ (p=1.000 n=6)
Query/sum_without_(l)(rate(a_1[1m]))_/_sum_without_(l)(rate(b_1[1m])),_range_query_with_1000_steps/Mimir-10          885.0 ±  0%    885.0 ± 0%        ~ (p=1.000 n=6)
Query/sum_without_(l)(rate(a_100[1m]))_/_sum_without_(l)(rate(b_100[1m])),_instant_query/Mimir-10                   3.832k ±  0%   3.831k ± 0%        ~ (p=0.242 n=6)
Query/sum_without_(l)(rate(a_100[1m]))_/_sum_without_(l)(rate(b_100[1m])),_range_query_with_100_steps/Mimir-10      4.642k ±  0%   4.641k ± 0%        ~ (p=0.545 n=6)
Query/sum_without_(l)(rate(a_100[1m]))_/_sum_without_(l)(rate(b_100[1m])),_range_query_with_1000_steps/Mimir-10     11.29k ±  0%   11.28k ± 0%        ~ (p=0.290 n=6)
Query/sum_without_(l)(rate(a_2000[1m]))_/_sum_without_(l)(rate(b_2000[1m])),_instant_query/Mimir-10                 61.62k ±  0%   61.62k ± 0%        ~ (p=0.290 n=6)
Query/sum_without_(l)(rate(a_2000[1m]))_/_sum_without_(l)(rate(b_2000[1m])),_range_query_with_100_steps/Mimir-10    77.75k ±  0%   77.77k ± 0%        ~ (p=0.223 n=6)
Query/sum_without_(l)(rate(a_2000[1m]))_/_sum_without_(l)(rate(b_2000[1m])),_range_query_with_1000_steps/Mimir-10   210.1k ±  0%   210.0k ± 0%        ~ (p=0.513 n=6)
geomean                                                                                                             24.39k         23.59k        -3.28%
¹ all samples are equal

                                                                                                                  │   main.txt   │              after.txt              │
                                                                                                                  │      B       │       B        vs base              │
Query/a_1_-_b_1,_instant_query/Mimir-10                                                                             71.50Mi ± 1%   71.17Mi ±  1%       ~ (p=0.253 n=6)
Query/a_1_-_b_1,_range_query_with_100_steps/Mimir-10                                                                70.55Mi ± 2%   70.43Mi ±  1%       ~ (p=0.900 n=6)
Query/a_1_-_b_1,_range_query_with_1000_steps/Mimir-10                                                               68.97Mi ± 1%   68.57Mi ±  1%       ~ (p=0.093 n=6)
Query/a_100_-_b_100,_instant_query/Mimir-10                                                                         66.25Mi ± 1%   65.87Mi ±  0%       ~ (p=0.310 n=6)
Query/a_100_-_b_100,_range_query_with_100_steps/Mimir-10                                                            67.17Mi ± 1%   66.86Mi ±  1%       ~ (p=0.195 n=6)
Query/a_100_-_b_100,_range_query_with_1000_steps/Mimir-10                                                           74.52Mi ± 1%   74.48Mi ±  2%       ~ (p=0.394 n=6)
Query/a_2000_-_b_2000,_instant_query/Mimir-10                                                                       69.52Mi ± 2%   68.68Mi ±  1%       ~ (p=0.132 n=6)
Query/a_2000_-_b_2000,_range_query_with_100_steps/Mimir-10                                                          82.05Mi ± 3%   81.28Mi ±  2%       ~ (p=0.310 n=6)
Query/a_2000_-_b_2000,_range_query_with_1000_steps/Mimir-10                                                         157.1Mi ± 2%   157.2Mi ±  3%       ~ (p=0.937 n=6)
Query/a_1_-_b_1,_range_query_with_10000_steps/Mimir-10                                                              71.09Mi ± 1%   71.07Mi ±  2%       ~ (p=0.589 n=6)
Query/a_100_-_b_100,_range_query_with_10000_steps/Mimir-10                                                          149.4Mi ± 6%   149.9Mi ±  3%       ~ (p=0.937 n=6)
Query/a_2000_-_b_2000,_range_query_with_10000_steps/Mimir-10                                                        617.5Mi ± 2%   630.2Mi ±  4%       ~ (p=0.065 n=6)
Query/nh_1_+_nh_1,_instant_query/Mimir-10                                                                           79.21Mi ± 1%   78.35Mi ±  1%  -1.08% (p=0.017 n=6)
Query/nh_1_+_nh_1,_range_query_with_100_steps/Mimir-10                                                              71.70Mi ± 1%   71.48Mi ±  0%       ~ (p=0.180 n=6)
Query/nh_1_+_nh_1,_range_query_with_1000_steps/Mimir-10                                                             72.45Mi ± 1%   72.23Mi ±  1%       ~ (p=0.734 n=6)
Query/nh_100_+_nh_100,_instant_query/Mimir-10                                                                       67.27Mi ± 0%   67.29Mi ±  0%       ~ (p=0.818 n=6)
Query/nh_100_+_nh_100,_range_query_with_100_steps/Mimir-10                                                          73.12Mi ± 2%   73.27Mi ±  2%       ~ (p=1.000 n=6)
Query/nh_100_+_nh_100,_range_query_with_1000_steps/Mimir-10                                                         121.8Mi ± 1%   121.7Mi ±  1%       ~ (p=0.589 n=6)
Query/nh_2000_+_nh_2000,_instant_query/Mimir-10                                                                     73.38Mi ± 1%   73.47Mi ±  1%       ~ (p=0.937 n=6)
Query/nh_2000_+_nh_2000,_range_query_with_100_steps/Mimir-10                                                        182.8Mi ± 1%   181.7Mi ±  1%       ~ (p=0.485 n=6)
Query/nh_2000_+_nh_2000,_range_query_with_1000_steps/Mimir-10                                                       879.6Mi ± 3%   877.7Mi ±  8%       ~ (p=1.000 n=6)
Query/nh_1_/_a_1,_instant_query/Mimir-10                                                                            75.60Mi ± 2%   75.29Mi ±  1%       ~ (p=0.558 n=6)
Query/nh_1_/_a_1,_range_query_with_100_steps/Mimir-10                                                               70.78Mi ± 1%   71.42Mi ±  1%       ~ (p=0.065 n=6)
Query/nh_1_/_a_1,_range_query_with_1000_steps/Mimir-10                                                              71.45Mi ± 2%   71.48Mi ±  1%       ~ (p=0.589 n=6)
Query/nh_100_/_a_100,_instant_query/Mimir-10                                                                        67.03Mi ± 1%   67.19Mi ±  1%       ~ (p=0.394 n=6)
Query/nh_100_/_a_100,_range_query_with_100_steps/Mimir-10                                                           73.02Mi ± 1%   72.62Mi ±  1%       ~ (p=0.394 n=6)
Query/nh_100_/_a_100,_range_query_with_1000_steps/Mimir-10                                                          121.2Mi ± 1%   120.6Mi ±  1%       ~ (p=0.132 n=6)
Query/nh_2000_/_a_2000,_instant_query/Mimir-10                                                                      72.95Mi ± 1%   72.36Mi ±  3%       ~ (p=0.485 n=6)
Query/nh_2000_/_a_2000,_range_query_with_100_steps/Mimir-10                                                         180.6Mi ± 0%   181.1Mi ±  1%       ~ (p=0.065 n=6)
Query/nh_2000_/_a_2000,_range_query_with_1000_steps/Mimir-10                                                        787.5Mi ± 5%   772.7Mi ± 10%       ~ (p=0.589 n=6)
Query/a_100{l=~"[13579]."}_-_b_100,_instant_query/Mimir-10                                                          66.32Mi ± 1%   66.43Mi ±  1%       ~ (p=0.394 n=6)
Query/a_100{l=~"[13579]."}_-_b_100,_range_query_with_100_steps/Mimir-10                                             66.55Mi ± 1%   66.33Mi ±  1%       ~ (p=0.937 n=6)
Query/a_100{l=~"[13579]."}_-_b_100,_range_query_with_1000_steps/Mimir-10                                            70.28Mi ± 1%   69.62Mi ±  2%       ~ (p=0.310 n=6)
Query/a_2000{l=~"1..."}_-_b_2000,_instant_query/Mimir-10                                                            69.56Mi ± 1%   68.61Mi ±  1%  -1.37% (p=0.026 n=6)
Query/a_2000{l=~"1..."}_-_b_2000,_range_query_with_100_steps/Mimir-10                                               76.46Mi ± 2%   77.50Mi ±  1%       ~ (p=0.485 n=6)
Query/a_2000{l=~"1..."}_-_b_2000,_range_query_with_1000_steps/Mimir-10                                              122.9Mi ± 2%   122.9Mi ±  3%       ~ (p=0.589 n=6)
Query/a_2000{l="1234"}_-_b_2000,_instant_query/Mimir-10                                                             68.97Mi ± 2%   69.08Mi ±  1%       ~ (p=0.853 n=6)
Query/a_2000{l="1234"}_-_b_2000,_range_query_with_100_steps/Mimir-10                                                69.48Mi ± 4%   70.10Mi ±  1%       ~ (p=0.058 n=6)
Query/a_2000{l="1234"}_-_b_2000,_range_query_with_1000_steps/Mimir-10                                               75.66Mi ± 3%   76.45Mi ±  2%       ~ (p=0.394 n=6)
Query/a_2000_-_b_2000{l="1234"},_instant_query/Mimir-10                                                             68.58Mi ± 2%   68.94Mi ±  2%       ~ (p=0.732 n=6)
Query/a_2000_-_b_2000{l="1234"},_range_query_with_100_steps/Mimir-10                                                69.81Mi ± 3%   69.38Mi ±  1%       ~ (p=0.818 n=6)
Query/a_2000_-_b_2000{l="1234"},_range_query_with_1000_steps/Mimir-10                                               75.43Mi ± 4%   77.52Mi ±  2%       ~ (p=0.065 n=6)
Query/rate(a_1[1m])_+_rate(b_1[1m]),_instant_query/Mimir-10                                                         71.71Mi ± 1%   71.52Mi ±  1%       ~ (p=0.699 n=6)
Query/rate(a_1[1m])_+_rate(b_1[1m]),_range_query_with_100_steps/Mimir-10                                            71.03Mi ± 1%   71.14Mi ±  2%       ~ (p=0.589 n=6)
Query/rate(a_1[1m])_+_rate(b_1[1m]),_range_query_with_1000_steps/Mimir-10                                           68.77Mi ± 1%   68.80Mi ±  1%       ~ (p=0.937 n=6)
Query/rate(a_100[1m])_+_rate(b_100[1m]),_instant_query/Mimir-10                                                     66.23Mi ± 1%   66.25Mi ±  1%       ~ (p=0.589 n=6)
Query/rate(a_100[1m])_+_rate(b_100[1m]),_range_query_with_100_steps/Mimir-10                                        66.98Mi ± 1%   67.20Mi ±  1%       ~ (p=0.329 n=6)
Query/rate(a_100[1m])_+_rate(b_100[1m]),_range_query_with_1000_steps/Mimir-10                                       74.38Mi ± 4%   72.82Mi ±  2%       ~ (p=0.558 n=6)
Query/rate(a_2000[1m])_+_rate(b_2000[1m]),_instant_query/Mimir-10                                                   68.11Mi ± 1%   68.45Mi ±  1%       ~ (p=0.686 n=6)
Query/rate(a_2000[1m])_+_rate(b_2000[1m]),_range_query_with_100_steps/Mimir-10                                      81.11Mi ± 2%   81.43Mi ±  2%       ~ (p=0.818 n=6)
Query/rate(a_2000[1m])_+_rate(b_2000[1m]),_range_query_with_1000_steps/Mimir-10                                     154.8Mi ± 3%   154.8Mi ±  1%       ~ (p=0.589 n=6)
Query/sum(a_1_+_b_1),_instant_query/Mimir-10                                                                        71.58Mi ± 1%   71.12Mi ±  1%       ~ (p=0.132 n=6)
Query/sum(a_1_+_b_1),_range_query_with_100_steps/Mimir-10                                                           70.84Mi ± 1%   70.95Mi ±  2%       ~ (p=0.420 n=6)
Query/sum(a_1_+_b_1),_range_query_with_1000_steps/Mimir-10                                                          69.21Mi ± 1%   69.12Mi ±  1%       ~ (p=1.000 n=6)
Query/sum(a_100_+_b_100),_instant_query/Mimir-10                                                                    66.34Mi ± 1%   66.09Mi ±  1%       ~ (p=0.240 n=6)
Query/sum(a_100_+_b_100),_range_query_with_100_steps/Mimir-10                                                       65.85Mi ± 1%   65.90Mi ±  1%       ~ (p=0.974 n=6)
Query/sum(a_100_+_b_100),_range_query_with_1000_steps/Mimir-10                                                      66.10Mi ± 1%   65.94Mi ±  1%       ~ (p=0.420 n=6)
Query/sum(a_2000_+_b_2000),_instant_query/Mimir-10                                                                  68.89Mi ± 2%   69.05Mi ±  1%       ~ (p=0.485 n=6)
Query/sum(a_2000_+_b_2000),_range_query_with_100_steps/Mimir-10                                                     69.54Mi ± 2%   69.49Mi ±  1%       ~ (p=0.619 n=6)
Query/sum(a_2000_+_b_2000),_range_query_with_1000_steps/Mimir-10                                                    78.26Mi ± 3%   78.75Mi ±  2%       ~ (p=0.818 n=6)
Query/sum_without_(l)(rate(a_1[1m]))_/_sum_without_(l)(rate(b_1[1m])),_instant_query/Mimir-10                       70.99Mi ± 1%   70.84Mi ±  2%       ~ (p=0.723 n=6)
Query/sum_without_(l)(rate(a_1[1m]))_/_sum_without_(l)(rate(b_1[1m])),_range_query_with_100_steps/Mimir-10          70.94Mi ± 1%   70.55Mi ±  1%       ~ (p=0.240 n=6)
Query/sum_without_(l)(rate(a_1[1m]))_/_sum_without_(l)(rate(b_1[1m])),_range_query_with_1000_steps/Mimir-10         69.09Mi ± 1%   69.00Mi ±  1%       ~ (p=0.909 n=6)
Query/sum_without_(l)(rate(a_100[1m]))_/_sum_without_(l)(rate(b_100[1m])),_instant_query/Mimir-10                   66.23Mi ± 1%   66.28Mi ±  2%       ~ (p=0.732 n=6)
Query/sum_without_(l)(rate(a_100[1m]))_/_sum_without_(l)(rate(b_100[1m])),_range_query_with_100_steps/Mimir-10      65.56Mi ± 1%   65.55Mi ±  1%       ~ (p=0.788 n=6)
Query/sum_without_(l)(rate(a_100[1m]))_/_sum_without_(l)(rate(b_100[1m])),_range_query_with_1000_steps/Mimir-10     64.95Mi ± 3%   65.02Mi ±  2%       ~ (p=0.734 n=6)
Query/sum_without_(l)(rate(a_2000[1m]))_/_sum_without_(l)(rate(b_2000[1m])),_instant_query/Mimir-10                 68.16Mi ± 2%   68.05Mi ±  1%       ~ (p=0.619 n=6)
Query/sum_without_(l)(rate(a_2000[1m]))_/_sum_without_(l)(rate(b_2000[1m])),_range_query_with_100_steps/Mimir-10    67.78Mi ± 1%   66.99Mi ±  2%       ~ (p=0.065 n=6)
Query/sum_without_(l)(rate(a_2000[1m]))_/_sum_without_(l)(rate(b_2000[1m])),_range_query_with_1000_steps/Mimir-10   74.69Mi ± 1%   75.58Mi ±  3%       ~ (p=0.180 n=6)
geomean                                                                                                             85.18Mi        85.11Mi        -0.08%


Which issue(s) this PR fixes or relates to

(none)

Checklist

  • [n/a] Tests updated.
  • [n/a] Documentation added.
  • CHANGELOG.md updated - the order of entries should be [CHANGE], [FEATURE], [ENHANCEMENT], [BUGFIX].
  • [n/a] about-versioning.md updated with experimental features.

@charleskorn charleskorn force-pushed the charleskorn/mqe-binop-grouping branch from f67c856 to cfb9e81 Compare August 8, 2024 04:08
@charleskorn charleskorn marked this pull request as ready for review August 8, 2024 04:22
@charleskorn charleskorn requested a review from a team as a code owner August 8, 2024 04:22
return lb.Labels()
}
}

// groupKeyFunc returns a function that computes the grouping key of the output group this series belongs to.
func (b *BinaryOperation) groupKeyFunc() func(labels.Labels) []byte {
Copy link
Contributor

Choose a reason for hiding this comment

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

would be good to see some tests of this to make sure the fast paths work as expected etc

Copy link
Contributor Author

Choose a reason for hiding this comment

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

This should be covered by the existing .test test cases, which is why I didn't add any further tests here.

Copy link
Contributor

@jhesketh jhesketh left a comment

Choose a reason for hiding this comment

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

Fair enough. Just a nit then :-).

@charleskorn charleskorn merged commit 50444bf into main Aug 8, 2024
29 checks passed
@charleskorn charleskorn deleted the charleskorn/mqe-binop-grouping branch August 8, 2024 06:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants