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

rowcontainer,rowexec: switch joinReader to use DiskBackedNumberedRowC… #49669

Merged
merged 1 commit into from
Jun 1, 2020

Conversation

sumeerbhola
Copy link
Collaborator

…ontainer

Additionally,

  • added a randomized correctness test that compares the results of the indexed
    and numbered containers.
  • added benchmark cases to the joinReader benchmark that limit memory. None of the
    workloads have repeated reads of the same right row and all access the right
    rows in monotonically increasing order so the difference between the two
    containers is due to the numbered container avoiding the overhead of populating
    the cache.
  • reduced the number of slice allocations in newNumberedDiskRowIterator.

Fixes #48118

Release note: None

@cockroach-teamcity
Copy link
Member

This change is Reviewable

@sumeerbhola
Copy link
Collaborator Author

benchstat output

name                                                                                                old time/op    new time/op     delta
JoinReader/reqOrdering=true/matchratio=onetoone/lookuprows=1/mem=100KB/parallel=true-16               45.1µs ± 1%     43.5µs ± 2%    -3.56%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetoone/lookuprows=1/mem=100KB-16                             46.2µs ± 2%     44.3µs ± 2%    -4.02%  (p=0.016 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetoone/lookuprows=1/mem=unlimited/parallel=true-16           45.9µs ± 0%     44.3µs ± 2%    -3.51%  (p=0.016 n=4+5)
JoinReader/reqOrdering=true/matchratio=onetoone/lookuprows=1/mem=unlimited-16                         45.9µs ± 1%     44.5µs ± 2%    -3.02%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetoone/lookuprows=16/mem=100KB-16                             150µs ± 2%      149µs ± 1%      ~     (p=0.222 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetoone/lookuprows=16/mem=unlimited-16                         150µs ± 2%      149µs ± 2%      ~     (p=0.690 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetoone/lookuprows=256/mem=100KB-16                           1.80ms ± 1%     1.85ms ± 5%      ~     (p=0.095 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetoone/lookuprows=256/mem=unlimited-16                       1.81ms ± 2%     1.79ms ± 2%      ~     (p=0.421 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetoone/lookuprows=1024/mem=100KB-16                          7.03ms ± 2%     7.03ms ± 3%      ~     (p=1.000 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetoone/lookuprows=1024/mem=unlimited-16                      7.21ms ± 3%     7.09ms ± 1%      ~     (p=0.222 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetoone/lookuprows=4096/mem=100KB-16                          28.3ms ± 2%     28.0ms ± 1%      ~     (p=0.222 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetoone/lookuprows=4096/mem=unlimited-16                      28.2ms ± 1%     28.1ms ± 3%      ~     (p=1.000 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetoone/lookuprows=8192/mem=100KB-16                          56.9ms ± 2%     56.1ms ± 2%      ~     (p=0.151 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetoone/lookuprows=8192/mem=unlimited-16                      56.8ms ± 3%     56.5ms ± 2%      ~     (p=1.000 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetoone/lookuprows=16384/mem=100KB-16                          104ms ± 2%      106ms ± 8%      ~     (p=0.421 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetoone/lookuprows=16384/mem=unlimited-16                      108ms ± 8%      103ms ± 0%    -4.59%  (p=0.016 n=5+4)
JoinReader/reqOrdering=true/matchratio=onetoone/lookuprows=32768/mem=100KB-16                          211ms ± 5%      209ms ± 4%      ~     (p=0.548 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetoone/lookuprows=32768/mem=unlimited-16                      209ms ± 1%      213ms ± 2%      ~     (p=0.151 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetoone/lookuprows=65536/mem=100KB-16                          420ms ± 1%      417ms ± 2%      ~     (p=0.310 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetoone/lookuprows=65536/mem=unlimited-16                      426ms ± 3%      421ms ± 3%      ~     (p=0.690 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetoone/lookuprows=524288/mem=100KB-16                         3.42s ± 2%      3.39s ± 1%      ~     (p=0.421 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetoone/lookuprows=524288/mem=unlimited-16                     3.40s ± 2%      3.40s ± 3%      ~     (p=0.841 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetofour/lookuprows=1/mem=100KB/parallel=true-16              47.3µs ± 1%     44.6µs ± 3%    -5.76%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetofour/lookuprows=1/mem=100KB-16                            47.0µs ± 1%     44.4µs ± 3%    -5.59%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetofour/lookuprows=1/mem=unlimited/parallel=true-16          48.0µs ± 2%     44.9µs ± 4%    -6.38%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetofour/lookuprows=1/mem=unlimited-16                        47.0µs ± 1%     44.7µs ± 2%    -5.03%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetofour/lookuprows=16/mem=100KB-16                            187µs ± 1%      164µs ± 3%   -11.99%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetofour/lookuprows=16/mem=unlimited-16                        186µs ± 1%      166µs ± 2%   -10.49%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetofour/lookuprows=256/mem=100KB-16                          2.43ms ± 3%     2.06ms ± 2%   -15.33%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetofour/lookuprows=256/mem=unlimited-16                      2.46ms ± 1%     2.06ms ± 2%   -16.31%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetofour/lookuprows=1024/mem=100KB-16                         9.57ms ± 4%     8.08ms ± 2%   -15.56%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetofour/lookuprows=1024/mem=unlimited-16                     9.42ms ± 2%     8.06ms ± 5%   -14.48%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetofour/lookuprows=4096/mem=100KB-16                         37.7ms ± 2%     32.3ms ± 3%   -14.25%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetofour/lookuprows=4096/mem=unlimited-16                     37.3ms ± 2%     32.2ms ± 1%   -13.60%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetofour/lookuprows=8192/mem=100KB-16                         74.2ms ± 1%     64.4ms ± 3%   -13.17%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetofour/lookuprows=8192/mem=unlimited-16                     74.0ms ± 2%     64.9ms ± 2%   -12.20%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetofour/lookuprows=16384/mem=100KB-16                         151ms ± 2%      127ms ± 3%   -15.50%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetofour/lookuprows=16384/mem=unlimited-16                     148ms ± 1%      131ms ± 3%   -11.68%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetofour/lookuprows=32768/mem=100KB-16                         297ms ± 2%      257ms ± 5%   -13.53%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetofour/lookuprows=32768/mem=unlimited-16                     300ms ± 2%      257ms ± 2%   -14.34%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetofour/lookuprows=65536/mem=100KB-16                         589ms ± 2%      514ms ± 3%   -12.67%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetofour/lookuprows=65536/mem=unlimited-16                     589ms ± 1%      513ms ± 2%   -12.83%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetosixteen/lookuprows=1/mem=100KB/parallel=true-16           56.1µs ± 2%     51.4µs ± 3%    -8.54%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetosixteen/lookuprows=1/mem=100KB-16                         55.7µs ± 1%     52.1µs ± 2%    -6.47%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetosixteen/lookuprows=1/mem=unlimited/parallel=true-16       55.9µs ± 2%     51.2µs ± 2%    -8.39%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetosixteen/lookuprows=1/mem=unlimited-16                     55.5µs ± 0%     52.2µs ± 2%    -5.78%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetosixteen/lookuprows=16/mem=100KB-16                         329µs ± 1%      289µs ± 2%   -12.15%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetosixteen/lookuprows=16/mem=unlimited-16                     323µs ± 0%      287µs ± 4%   -11.22%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetosixteen/lookuprows=256/mem=100KB-16                       8.60ms ± 1%     7.91ms ± 1%    -8.02%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetosixteen/lookuprows=256/mem=unlimited-16                   4.52ms ± 2%     3.83ms ± 2%   -15.34%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetosixteen/lookuprows=1024/mem=100KB-16                      34.4ms ± 2%     31.5ms ± 2%    -8.35%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetosixteen/lookuprows=1024/mem=unlimited-16                  17.7ms ± 1%     15.2ms ± 3%   -13.95%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetosixteen/lookuprows=4096/mem=100KB-16                       135ms ± 1%      126ms ± 1%    -6.27%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetosixteen/lookuprows=4096/mem=unlimited-16                  70.7ms ± 1%     61.3ms ± 3%   -13.28%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetosixteen/lookuprows=8192/mem=100KB-16                       275ms ± 3%      252ms ± 1%    -8.27%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetosixteen/lookuprows=8192/mem=unlimited-16                   140ms ± 2%      119ms ± 2%   -14.90%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetosixteen/lookuprows=16384/mem=100KB-16                      542ms ± 2%      503ms ± 0%    -7.18%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetosixteen/lookuprows=16384/mem=unlimited-16                  279ms ± 2%      239ms ± 2%   -14.44%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetosixteen/lookuprows=32768/mem=100KB-16                      1.08s ± 1%      1.02s ± 2%    -4.90%  (p=0.016 n=4+5)
JoinReader/reqOrdering=true/matchratio=onetosixteen/lookuprows=32768/mem=unlimited-16                  566ms ± 3%      482ms ± 2%   -14.87%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetothirtytwo/lookuprows=1/mem=100KB/parallel=true-16         67.3µs ± 2%     60.5µs ± 2%   -10.14%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetothirtytwo/lookuprows=1/mem=100KB-16                       70.8µs ±14%     60.0µs ± 0%   -15.29%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetothirtytwo/lookuprows=1/mem=unlimited/parallel=true-16     73.9µs ±16%     59.8µs ± 1%   -19.11%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetothirtytwo/lookuprows=1/mem=unlimited-16                   69.4µs ± 7%     60.0µs ± 3%   -13.62%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetothirtytwo/lookuprows=16/mem=100KB-16                       550µs ± 9%      431µs ± 1%   -21.69%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetothirtytwo/lookuprows=16/mem=unlimited-16                   537µs ± 7%      431µs ± 3%   -19.79%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetothirtytwo/lookuprows=256/mem=100KB-16                     16.6ms ± 5%     14.4ms ±12%   -13.14%  (p=0.016 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetothirtytwo/lookuprows=256/mem=unlimited-16                 7.76ms ± 5%     6.18ms ± 2%   -20.39%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetothirtytwo/lookuprows=1024/mem=100KB-16                    63.0ms ± 7%     56.4ms ± 3%   -10.61%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetothirtytwo/lookuprows=1024/mem=unlimited-16                31.6ms ± 4%     24.1ms ± 2%   -23.47%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetothirtytwo/lookuprows=4096/mem=100KB-16                     265ms ± 7%      220ms ± 1%   -17.11%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetothirtytwo/lookuprows=4096/mem=unlimited-16                 121ms ± 8%       96ms ± 3%   -20.56%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetothirtytwo/lookuprows=8192/mem=100KB-16                     507ms ± 7%      442ms ± 2%   -12.68%  (p=0.016 n=5+4)
JoinReader/reqOrdering=true/matchratio=onetothirtytwo/lookuprows=8192/mem=unlimited-16                 233ms ±11%      204ms ± 6%   -12.33%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetothirtytwo/lookuprows=16384/mem=100KB-16                    1.00s ± 7%      0.91s ± 2%    -9.16%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetothirtytwo/lookuprows=16384/mem=unlimited-16                505ms ± 9%      388ms ± 2%   -23.14%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetosixtyfour/lookuprows=1/mem=100KB/parallel=true-16         92.4µs ± 6%     79.2µs ± 3%   -14.29%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetosixtyfour/lookuprows=1/mem=100KB-16                       89.0µs ±11%     77.9µs ± 2%   -12.45%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetosixtyfour/lookuprows=1/mem=unlimited/parallel=true-16     86.4µs ± 3%     78.6µs ± 3%    -9.02%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetosixtyfour/lookuprows=1/mem=unlimited-16                   86.4µs ± 2%     78.7µs ± 1%    -8.89%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetosixtyfour/lookuprows=16/mem=100KB-16                      1.95ms ± 2%     1.84ms ± 1%    -5.85%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetosixtyfour/lookuprows=16/mem=unlimited-16                   836µs ± 1%      734µs ± 1%   -12.21%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetosixtyfour/lookuprows=256/mem=100KB-16                     29.0ms ±21%     26.3ms ± 3%    -9.37%  (p=0.032 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetosixtyfour/lookuprows=256/mem=unlimited-16                 12.5ms ± 4%     10.9ms ± 1%   -12.80%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetosixtyfour/lookuprows=1024/mem=100KB-16                     112ms ± 8%      106ms ± 1%    -5.94%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetosixtyfour/lookuprows=1024/mem=unlimited-16                49.2ms ± 2%     44.0ms ± 2%   -10.48%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetosixtyfour/lookuprows=4096/mem=100KB-16                     452ms ± 3%      422ms ± 1%    -6.70%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetosixtyfour/lookuprows=4096/mem=unlimited-16                 198ms ± 2%      172ms ± 2%   -12.93%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetosixtyfour/lookuprows=8192/mem=100KB-16                     895ms ± 6%      834ms ± 1%    -6.79%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetosixtyfour/lookuprows=8192/mem=unlimited-16                 386ms ± 1%      333ms ± 2%   -13.64%  (p=0.008 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetoone/lookuprows=1/mem=unlimited/parallel=true-16          37.6µs ± 3%     38.1µs ± 4%      ~     (p=0.421 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetoone/lookuprows=1/mem=unlimited-16                        37.5µs ± 3%     38.0µs ± 2%      ~     (p=0.151 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetoone/lookuprows=16/mem=unlimited-16                        128µs ± 2%      133µs ± 3%    +4.18%  (p=0.032 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetoone/lookuprows=256/mem=unlimited-16                      1.57ms ± 4%     1.60ms ± 2%      ~     (p=0.222 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetoone/lookuprows=1024/mem=unlimited-16                     6.16ms ± 3%     6.35ms ± 3%    +3.04%  (p=0.032 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetoone/lookuprows=4096/mem=unlimited-16                     25.0ms ± 2%     26.2ms ± 2%    +5.12%  (p=0.008 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetoone/lookuprows=8192/mem=unlimited-16                     50.8ms ± 2%     53.0ms ± 1%    +4.23%  (p=0.008 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetoone/lookuprows=16384/mem=unlimited-16                     116ms ± 2%      119ms ± 2%      ~     (p=0.222 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetoone/lookuprows=32768/mem=unlimited-16                     249ms ± 5%      252ms ± 2%      ~     (p=0.841 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetoone/lookuprows=65536/mem=unlimited-16                     486ms ± 1%      521ms ± 8%    +7.17%  (p=0.008 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetoone/lookuprows=524288/mem=unlimited-16                    4.07s ± 2%      4.19s ± 3%    +2.97%  (p=0.008 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetofour/lookuprows=1/mem=unlimited/parallel=true-16         39.9µs ± 3%     40.6µs ± 3%      ~     (p=0.222 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetofour/lookuprows=1/mem=unlimited-16                       39.6µs ± 2%     39.5µs ± 1%      ~     (p=1.000 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetofour/lookuprows=16/mem=unlimited-16                       158µs ± 3%      146µs ± 1%    -7.85%  (p=0.008 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetofour/lookuprows=256/mem=unlimited-16                     2.02ms ± 2%     1.85ms ± 2%    -8.46%  (p=0.008 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetofour/lookuprows=1024/mem=unlimited-16                    8.01ms ± 3%     7.26ms ± 2%    -9.34%  (p=0.008 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetofour/lookuprows=4096/mem=unlimited-16                    35.2ms ± 3%     32.9ms ± 3%    -6.53%  (p=0.008 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetofour/lookuprows=8192/mem=unlimited-16                    83.3ms ± 3%     76.6ms ± 2%    -8.09%  (p=0.008 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetofour/lookuprows=16384/mem=unlimited-16                    211ms ± 2%      200ms ± 1%    -5.02%  (p=0.008 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetofour/lookuprows=32768/mem=unlimited-16                    487ms ± 4%      472ms ± 3%    -3.19%  (p=0.032 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetofour/lookuprows=65536/mem=unlimited-16                    1.01s ± 3%      0.94s ± 3%    -6.10%  (p=0.008 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetosixteen/lookuprows=1/mem=unlimited/parallel=true-16      45.1µs ± 3%     44.8µs ± 2%      ~     (p=0.841 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetosixteen/lookuprows=1/mem=unlimited-16                    44.1µs ± 2%     44.4µs ± 1%      ~     (p=0.151 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetosixteen/lookuprows=16/mem=unlimited-16                    225µs ± 2%      222µs ± 2%      ~     (p=0.310 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetosixteen/lookuprows=256/mem=unlimited-16                  3.10ms ± 2%     3.03ms ± 2%    -2.12%  (p=0.032 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetosixteen/lookuprows=1024/mem=unlimited-16                 13.0ms ± 1%     12.7ms ± 2%    -1.95%  (p=0.032 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetosixteen/lookuprows=4096/mem=unlimited-16                 68.4ms ± 3%     68.1ms ± 3%      ~     (p=0.841 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetosixteen/lookuprows=8192/mem=unlimited-16                  185ms ± 5%      184ms ± 2%      ~     (p=0.690 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetosixteen/lookuprows=16384/mem=unlimited-16                 561ms ± 5%      546ms ± 3%      ~     (p=0.222 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetosixteen/lookuprows=32768/mem=unlimited-16                 1.41s ± 2%      1.39s ± 3%      ~     (p=0.222 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetothirtytwo/lookuprows=1/mem=unlimited/parallel=true-16    50.8µs ± 1%     51.5µs ± 2%      ~     (p=0.151 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetothirtytwo/lookuprows=1/mem=unlimited-16                  50.0µs ± 2%     50.1µs ± 2%      ~     (p=0.841 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetothirtytwo/lookuprows=16/mem=unlimited-16                  325µs ± 4%      317µs ± 2%      ~     (p=0.151 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetothirtytwo/lookuprows=256/mem=unlimited-16                4.66ms ± 1%     4.58ms ± 2%      ~     (p=0.056 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetothirtytwo/lookuprows=1024/mem=unlimited-16               20.4ms ± 1%     20.3ms ± 1%      ~     (p=0.222 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetothirtytwo/lookuprows=4096/mem=unlimited-16                116ms ± 2%      115ms ± 3%      ~     (p=0.841 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetothirtytwo/lookuprows=8192/mem=unlimited-16                335ms ± 2%      331ms ± 4%      ~     (p=0.421 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetothirtytwo/lookuprows=16384/mem=unlimited-16               1.05s ± 5%      1.05s ± 4%      ~     (p=0.841 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetosixtyfour/lookuprows=1/mem=unlimited/parallel=true-16    60.9µs ± 3%     62.3µs ± 3%      ~     (p=0.222 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetosixtyfour/lookuprows=1/mem=unlimited-16                  60.3µs ± 2%     61.4µs ± 3%      ~     (p=0.151 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetosixtyfour/lookuprows=16/mem=unlimited-16                  491µs ± 2%      504µs ± 2%    +2.48%  (p=0.016 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetosixtyfour/lookuprows=256/mem=unlimited-16                7.60ms ± 2%     7.76ms ± 4%      ~     (p=0.310 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetosixtyfour/lookuprows=1024/mem=unlimited-16               34.4ms ± 3%     34.7ms ± 2%      ~     (p=0.421 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetosixtyfour/lookuprows=4096/mem=unlimited-16                193ms ± 3%      204ms ± 2%    +5.92%  (p=0.008 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetosixtyfour/lookuprows=8192/mem=unlimited-16                562ms ± 3%      599ms ± 3%    +6.61%  (p=0.008 n=5+5)

name                                                                                                old speed      new speed       delta
JoinReader/reqOrdering=true/matchratio=onetoone/lookuprows=1/mem=100KB/parallel=true-16              356kB/s ± 2%    370kB/s ± 0%    +3.93%  (p=0.016 n=5+4)
JoinReader/reqOrdering=true/matchratio=onetoone/lookuprows=1/mem=100KB-16                            346kB/s ± 2%    362kB/s ± 3%    +4.62%  (p=0.032 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetoone/lookuprows=1/mem=unlimited/parallel=true-16          350kB/s ± 0%    360kB/s ± 0%    +2.86%  (p=0.029 n=4+4)
JoinReader/reqOrdering=true/matchratio=onetoone/lookuprows=1/mem=unlimited-16                        350kB/s ± 0%    360kB/s ± 3%      ~     (p=0.079 n=4+5)
JoinReader/reqOrdering=true/matchratio=onetoone/lookuprows=16/mem=100KB-16                          1.70MB/s ± 2%   1.72MB/s ± 1%      ~     (p=0.135 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetoone/lookuprows=16/mem=unlimited-16                      1.71MB/s ± 2%   1.71MB/s ± 2%      ~     (p=0.659 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetoone/lookuprows=256/mem=100KB-16                         2.27MB/s ± 1%   2.21MB/s ± 5%      ~     (p=0.135 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetoone/lookuprows=256/mem=unlimited-16                     2.26MB/s ± 2%   2.28MB/s ± 2%      ~     (p=0.373 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetoone/lookuprows=1024/mem=100KB-16                        2.33MB/s ± 2%   2.33MB/s ± 3%      ~     (p=0.889 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetoone/lookuprows=1024/mem=unlimited-16                    2.28MB/s ± 3%   2.31MB/s ± 1%      ~     (p=0.214 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetoone/lookuprows=4096/mem=100KB-16                        2.31MB/s ± 2%   2.34MB/s ± 1%      ~     (p=0.262 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetoone/lookuprows=4096/mem=unlimited-16                    2.32MB/s ± 1%   2.33MB/s ± 3%      ~     (p=0.825 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetoone/lookuprows=8192/mem=100KB-16                        2.30MB/s ± 2%   2.34MB/s ± 2%      ~     (p=0.143 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetoone/lookuprows=8192/mem=unlimited-16                    2.31MB/s ± 3%   2.32MB/s ± 2%      ~     (p=1.000 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetoone/lookuprows=16384/mem=100KB-16                       2.53MB/s ± 2%   2.47MB/s ± 7%      ~     (p=0.460 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetoone/lookuprows=16384/mem=unlimited-16                   2.44MB/s ± 8%   2.51MB/s ± 6%      ~     (p=0.071 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetoone/lookuprows=32768/mem=100KB-16                       2.49MB/s ± 5%   2.51MB/s ± 4%      ~     (p=0.579 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetoone/lookuprows=32768/mem=unlimited-16                   2.51MB/s ± 1%   2.46MB/s ± 2%      ~     (p=0.151 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetoone/lookuprows=65536/mem=100KB-16                       2.49MB/s ± 1%   2.51MB/s ± 2%      ~     (p=0.349 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetoone/lookuprows=65536/mem=unlimited-16                   2.46MB/s ± 3%   2.49MB/s ± 3%      ~     (p=0.722 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetoone/lookuprows=524288/mem=100KB-16                      2.45MB/s ± 2%   2.47MB/s ± 1%      ~     (p=0.302 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetoone/lookuprows=524288/mem=unlimited-16                  2.46MB/s ± 2%   2.47MB/s ± 3%      ~     (p=0.714 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetofour/lookuprows=1/mem=100KB/parallel=true-16             846kB/s ± 1%    898kB/s ± 3%    +6.15%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetofour/lookuprows=1/mem=100KB-16                           850kB/s ± 1%    902kB/s ± 4%    +6.12%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetofour/lookuprows=1/mem=unlimited/parallel=true-16         832kB/s ± 3%    892kB/s ± 4%    +7.21%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetofour/lookuprows=1/mem=unlimited-16                       850kB/s ± 0%    896kB/s ± 2%    +5.41%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetofour/lookuprows=16/mem=100KB-16                         3.43MB/s ± 1%   3.89MB/s ± 3%   +13.54%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetofour/lookuprows=16/mem=unlimited-16                     3.44MB/s ± 1%   3.85MB/s ± 2%   +11.73%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetofour/lookuprows=256/mem=100KB-16                        4.21MB/s ± 3%   4.97MB/s ± 2%   +18.15%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetofour/lookuprows=256/mem=unlimited-16                    4.17MB/s ± 1%   4.98MB/s ± 2%   +19.48%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetofour/lookuprows=1024/mem=100KB-16                       4.28MB/s ± 4%   5.07MB/s ± 2%   +18.31%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetofour/lookuprows=1024/mem=unlimited-16                   4.35MB/s ± 2%   5.09MB/s ± 5%   +17.02%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetofour/lookuprows=4096/mem=100KB-16                       4.35MB/s ± 2%   5.07MB/s ± 3%   +16.65%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetofour/lookuprows=4096/mem=unlimited-16                   4.39MB/s ± 2%   5.09MB/s ± 1%   +15.80%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetofour/lookuprows=8192/mem=100KB-16                       4.42MB/s ± 1%   5.09MB/s ± 3%   +15.22%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetofour/lookuprows=8192/mem=unlimited-16                   4.43MB/s ± 2%   5.05MB/s ± 2%   +13.91%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetofour/lookuprows=16384/mem=100KB-16                      4.35MB/s ± 2%   5.15MB/s ± 2%   +18.34%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetofour/lookuprows=16384/mem=unlimited-16                  4.42MB/s ± 0%   5.01MB/s ± 3%   +13.25%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetofour/lookuprows=32768/mem=100KB-16                      4.41MB/s ± 2%   5.10MB/s ± 5%   +15.68%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetofour/lookuprows=32768/mem=unlimited-16                  4.38MB/s ± 2%   5.11MB/s ± 2%   +16.73%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetofour/lookuprows=65536/mem=100KB-16                      4.46MB/s ± 2%   5.10MB/s ± 3%   +14.45%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetofour/lookuprows=65536/mem=unlimited-16                  4.45MB/s ± 1%   5.11MB/s ± 2%   +14.73%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetosixteen/lookuprows=1/mem=100KB/parallel=true-16         2.42MB/s ± 2%   2.65MB/s ± 3%    +9.50%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetosixteen/lookuprows=1/mem=100KB-16                       2.44MB/s ± 1%   2.61MB/s ± 2%    +6.87%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetosixteen/lookuprows=1/mem=unlimited/parallel=true-16     2.43MB/s ± 2%   2.66MB/s ± 2%    +9.12%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetosixteen/lookuprows=1/mem=unlimited-16                   2.45MB/s ± 1%   2.60MB/s ± 2%    +6.03%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetosixteen/lookuprows=16/mem=100KB-16                      6.61MB/s ± 1%   7.52MB/s ± 2%   +13.86%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetosixteen/lookuprows=16/mem=unlimited-16                  6.73MB/s ± 0%   7.59MB/s ± 4%   +12.72%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetosixteen/lookuprows=256/mem=100KB-16                     4.05MB/s ± 1%   4.40MB/s ± 1%    +8.70%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetosixteen/lookuprows=256/mem=unlimited-16                 7.70MB/s ± 2%   9.10MB/s ± 2%   +18.16%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetosixteen/lookuprows=1024/mem=100KB-16                    4.05MB/s ± 2%   4.43MB/s ± 2%    +9.18%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetosixteen/lookuprows=1024/mem=unlimited-16                7.89MB/s ± 1%   9.17MB/s ± 3%   +16.25%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetosixteen/lookuprows=4096/mem=100KB-16                    4.14MB/s ± 1%   4.42MB/s ± 1%    +6.71%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetosixteen/lookuprows=4096/mem=unlimited-16                7.88MB/s ± 1%   9.09MB/s ± 3%   +15.38%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetosixteen/lookuprows=8192/mem=100KB-16                    4.06MB/s ± 3%   4.42MB/s ± 1%    +9.02%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetosixteen/lookuprows=8192/mem=unlimited-16                7.97MB/s ± 2%   9.36MB/s ± 2%   +17.47%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetosixteen/lookuprows=16384/mem=100KB-16                   4.11MB/s ± 2%   4.43MB/s ± 0%    +7.73%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetosixteen/lookuprows=16384/mem=unlimited-16               7.99MB/s ± 2%   9.34MB/s ± 2%   +16.92%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetosixteen/lookuprows=32768/mem=100KB-16                   4.02MB/s ±13%   4.36MB/s ± 2%    +8.47%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetosixteen/lookuprows=32768/mem=unlimited-16               7.87MB/s ± 3%   9.25MB/s ± 2%   +17.42%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetothirtytwo/lookuprows=1/mem=100KB/parallel=true-16       3.92MB/s ± 2%   4.37MB/s ± 2%   +11.31%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetothirtytwo/lookuprows=1/mem=100KB-16                     3.75MB/s ±13%   4.40MB/s ± 0%   +17.40%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetothirtytwo/lookuprows=1/mem=unlimited/parallel=true-16   3.62MB/s ±15%   4.41MB/s ± 1%   +21.93%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetothirtytwo/lookuprows=1/mem=unlimited-16                 3.81MB/s ± 8%   4.40MB/s ± 3%   +15.59%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetothirtytwo/lookuprows=16/mem=100KB-16                    7.70MB/s ± 9%   9.81MB/s ± 1%   +27.28%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetothirtytwo/lookuprows=16/mem=unlimited-16                7.88MB/s ± 7%   9.81MB/s ± 3%   +24.55%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetothirtytwo/lookuprows=256/mem=100KB-16                   4.09MB/s ± 5%   4.72MB/s ±11%   +15.42%  (p=0.016 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetothirtytwo/lookuprows=256/mem=unlimited-16               8.71MB/s ± 5%  10.94MB/s ± 2%   +25.52%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetothirtytwo/lookuprows=1024/mem=100KB-16                  4.30MB/s ± 7%   4.80MB/s ± 3%   +11.63%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetothirtytwo/lookuprows=1024/mem=unlimited-16              8.57MB/s ± 4%  11.20MB/s ± 2%   +30.58%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetothirtytwo/lookuprows=4096/mem=100KB-16                  4.09MB/s ± 7%   4.92MB/s ± 1%   +20.40%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetothirtytwo/lookuprows=4096/mem=unlimited-16              8.94MB/s ± 8%  11.23MB/s ± 3%   +25.61%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetothirtytwo/lookuprows=8192/mem=100KB-16                  4.28MB/s ± 7%   4.70MB/s ±16%      ~     (p=0.151 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetothirtytwo/lookuprows=8192/mem=unlimited-16              9.31MB/s ±10%  10.61MB/s ± 5%   +13.89%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetothirtytwo/lookuprows=16384/mem=100KB-16                 4.34MB/s ± 7%   4.77MB/s ± 2%    +9.87%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetothirtytwo/lookuprows=16384/mem=unlimited-16             8.58MB/s ± 8%  11.14MB/s ± 2%   +29.81%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetosixtyfour/lookuprows=1/mem=100KB/parallel=true-16       5.63MB/s ± 6%   6.57MB/s ± 3%   +16.54%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetosixtyfour/lookuprows=1/mem=100KB-16                     5.86MB/s ±10%   6.67MB/s ± 2%   +13.93%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetosixtyfour/lookuprows=1/mem=unlimited/parallel=true-16   6.02MB/s ± 3%   6.61MB/s ± 3%    +9.90%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetosixtyfour/lookuprows=1/mem=unlimited-16                 6.02MB/s ± 2%   6.61MB/s ± 1%    +9.70%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetosixtyfour/lookuprows=16/mem=100KB-16                    4.26MB/s ± 2%   4.52MB/s ± 1%    +6.20%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetosixtyfour/lookuprows=16/mem=unlimited-16                10.0MB/s ± 1%   11.3MB/s ± 1%   +13.90%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetosixtyfour/lookuprows=256/mem=100KB-16                   4.63MB/s ±18%   5.06MB/s ± 3%    +9.24%  (p=0.032 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetosixtyfour/lookuprows=256/mem=unlimited-16               10.6MB/s ± 4%   12.2MB/s ± 1%   +14.64%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetosixtyfour/lookuprows=1024/mem=100KB-16                  4.75MB/s ± 7%   5.04MB/s ± 1%    +6.19%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetosixtyfour/lookuprows=1024/mem=unlimited-16              10.8MB/s ± 2%   12.1MB/s ± 2%   +11.73%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetosixtyfour/lookuprows=4096/mem=100KB-16                  4.72MB/s ± 3%   5.05MB/s ± 1%    +7.08%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetosixtyfour/lookuprows=4096/mem=unlimited-16              10.8MB/s ± 2%   12.4MB/s ± 2%   +14.86%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetosixtyfour/lookuprows=8192/mem=100KB-16                  4.76MB/s ± 5%   5.11MB/s ± 1%    +7.18%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetosixtyfour/lookuprows=8192/mem=unlimited-16              11.0MB/s ± 1%   12.8MB/s ± 2%   +15.78%  (p=0.008 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetoone/lookuprows=1/mem=unlimited/parallel=true-16         424kB/s ± 3%    418kB/s ± 4%      ~     (p=0.365 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetoone/lookuprows=1/mem=unlimited-16                       430kB/s ± 0%    420kB/s ± 0%    -2.33%  (p=0.029 n=4+4)
JoinReader/reqOrdering=false/matchratio=onetoone/lookuprows=16/mem=unlimited-16                     2.01MB/s ± 2%   1.93MB/s ± 3%    -3.89%  (p=0.032 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetoone/lookuprows=256/mem=unlimited-16                    2.60MB/s ± 4%   2.56MB/s ± 2%      ~     (p=0.159 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetoone/lookuprows=1024/mem=unlimited-16                   2.66MB/s ± 3%   2.58MB/s ± 3%    -2.86%  (p=0.040 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetoone/lookuprows=4096/mem=unlimited-16                   2.63MB/s ± 2%   2.50MB/s ± 2%    -5.02%  (p=0.008 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetoone/lookuprows=8192/mem=unlimited-16                   2.58MB/s ± 2%   2.48MB/s ± 1%    -3.96%  (p=0.008 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetoone/lookuprows=16384/mem=unlimited-16                  2.26MB/s ± 2%   2.21MB/s ± 2%      ~     (p=0.143 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetoone/lookuprows=32768/mem=unlimited-16                  2.11MB/s ± 5%   2.08MB/s ± 1%      ~     (p=0.714 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetoone/lookuprows=65536/mem=unlimited-16                  2.16MB/s ± 1%   2.02MB/s ± 7%    -6.40%  (p=0.008 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetoone/lookuprows=524288/mem=unlimited-16                 2.06MB/s ± 2%   2.00MB/s ± 3%    -2.91%  (p=0.008 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetofour/lookuprows=1/mem=unlimited/parallel=true-16       1.00MB/s ± 3%   0.99MB/s ± 3%      ~     (p=0.214 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetofour/lookuprows=1/mem=unlimited-16                     1.01MB/s ± 1%   1.01MB/s ± 1%      ~     (p=1.000 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetofour/lookuprows=16/mem=unlimited-16                    4.04MB/s ± 3%   4.38MB/s ± 2%    +8.51%  (p=0.008 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetofour/lookuprows=256/mem=unlimited-16                   5.07MB/s ± 2%   5.53MB/s ± 2%    +9.20%  (p=0.008 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetofour/lookuprows=1024/mem=unlimited-16                  5.12MB/s ± 3%   5.64MB/s ± 2%   +10.28%  (p=0.008 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetofour/lookuprows=4096/mem=unlimited-16                  4.66MB/s ± 3%   4.98MB/s ± 3%    +6.96%  (p=0.008 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetofour/lookuprows=8192/mem=unlimited-16                  3.93MB/s ± 3%   4.28MB/s ± 2%    +8.80%  (p=0.008 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetofour/lookuprows=16384/mem=unlimited-16                 3.11MB/s ± 2%   3.27MB/s ± 1%    +5.21%  (p=0.008 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetofour/lookuprows=32768/mem=unlimited-16                 2.69MB/s ± 4%   2.78MB/s ± 4%    +3.42%  (p=0.024 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetofour/lookuprows=65536/mem=unlimited-16                 2.61MB/s ± 3%   2.78MB/s ± 3%    +6.43%  (p=0.008 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetosixteen/lookuprows=1/mem=unlimited/parallel=true-16    3.01MB/s ± 3%   3.03MB/s ± 1%      ~     (p=0.595 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetosixteen/lookuprows=1/mem=unlimited-16                  3.09MB/s ± 2%   3.07MB/s ± 1%      ~     (p=0.183 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetosixteen/lookuprows=16/mem=unlimited-16                 9.67MB/s ± 2%   9.78MB/s ± 2%      ~     (p=0.310 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetosixteen/lookuprows=256/mem=unlimited-16                11.2MB/s ± 2%   11.5MB/s ± 2%    +2.17%  (p=0.032 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetosixteen/lookuprows=1024/mem=unlimited-16               10.7MB/s ± 1%   11.0MB/s ± 2%    +1.97%  (p=0.032 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetosixteen/lookuprows=4096/mem=unlimited-16               8.15MB/s ± 3%   8.18MB/s ± 3%      ~     (p=0.706 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetosixteen/lookuprows=8192/mem=unlimited-16               6.02MB/s ± 5%   6.05MB/s ± 2%      ~     (p=0.738 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetosixteen/lookuprows=16384/mem=unlimited-16              3.97MB/s ± 4%   4.08MB/s ± 3%      ~     (p=0.222 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetosixteen/lookuprows=32768/mem=unlimited-16              3.16MB/s ± 2%   3.21MB/s ± 3%      ~     (p=0.246 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetothirtytwo/lookuprows=1/mem=unlimited/parallel=true-16  5.20MB/s ± 1%   5.13MB/s ± 3%      ~     (p=0.151 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetothirtytwo/lookuprows=1/mem=unlimited-16                5.28MB/s ± 2%   5.27MB/s ± 2%      ~     (p=1.000 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetothirtytwo/lookuprows=16/mem=unlimited-16               13.0MB/s ± 4%   13.3MB/s ± 2%      ~     (p=0.111 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetothirtytwo/lookuprows=256/mem=unlimited-16              14.5MB/s ± 1%   14.8MB/s ± 2%      ~     (p=0.056 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetothirtytwo/lookuprows=1024/mem=unlimited-16             13.3MB/s ± 1%   13.3MB/s ± 1%      ~     (p=0.206 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetothirtytwo/lookuprows=4096/mem=unlimited-16             9.32MB/s ± 2%   9.42MB/s ± 3%      ~     (p=0.802 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetothirtytwo/lookuprows=8192/mem=unlimited-16             6.45MB/s ± 2%   6.54MB/s ± 4%      ~     (p=0.381 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetothirtytwo/lookuprows=16384/mem=unlimited-16            4.12MB/s ± 5%   4.14MB/s ± 4%      ~     (p=0.802 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetosixtyfour/lookuprows=1/mem=unlimited/parallel=true-16  8.54MB/s ± 3%   8.35MB/s ± 3%      ~     (p=0.246 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetosixtyfour/lookuprows=1/mem=unlimited-16                8.62MB/s ± 2%   8.47MB/s ± 3%      ~     (p=0.167 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetosixtyfour/lookuprows=16/mem=unlimited-16               16.9MB/s ± 2%   16.5MB/s ± 2%    -2.43%  (p=0.016 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetosixtyfour/lookuprows=256/mem=unlimited-16              17.5MB/s ± 2%   17.2MB/s ± 4%      ~     (p=0.310 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetosixtyfour/lookuprows=1024/mem=unlimited-16             15.5MB/s ± 3%   15.4MB/s ± 2%      ~     (p=0.389 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetosixtyfour/lookuprows=4096/mem=unlimited-16             11.0MB/s ± 3%   10.4MB/s ± 2%    -5.61%  (p=0.008 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetosixtyfour/lookuprows=8192/mem=unlimited-16             7.59MB/s ± 3%   7.11MB/s ± 2%    -6.27%  (p=0.008 n=5+5)

name                                                                                                old alloc/op   new alloc/op    delta
JoinReader/reqOrdering=true/matchratio=onetoone/lookuprows=1/mem=100KB/parallel=true-16               29.6kB ± 0%     25.5kB ± 1%   -14.05%  (p=0.016 n=4+5)
JoinReader/reqOrdering=true/matchratio=onetoone/lookuprows=1/mem=100KB-16                             29.6kB ± 0%     25.4kB ± 0%   -14.41%  (p=0.016 n=5+4)
JoinReader/reqOrdering=true/matchratio=onetoone/lookuprows=1/mem=unlimited/parallel=true-16           29.6kB ± 0%     25.4kB ± 0%   -14.40%  (p=0.016 n=4+5)
JoinReader/reqOrdering=true/matchratio=onetoone/lookuprows=1/mem=unlimited-16                         29.6kB ± 0%     25.4kB ± 0%   -14.47%  (p=0.016 n=5+4)
JoinReader/reqOrdering=true/matchratio=onetoone/lookuprows=16/mem=100KB-16                            49.1kB ± 0%     44.2kB ± 0%    -9.90%  (p=0.029 n=4+4)
JoinReader/reqOrdering=true/matchratio=onetoone/lookuprows=16/mem=unlimited-16                        49.2kB ± 1%     44.3kB ± 1%    -9.91%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetoone/lookuprows=256/mem=100KB-16                            353kB ± 0%      336kB ± 0%    -4.75%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetoone/lookuprows=256/mem=unlimited-16                        353kB ± 0%      336kB ± 0%    -4.66%  (p=0.029 n=4+4)
JoinReader/reqOrdering=true/matchratio=onetoone/lookuprows=1024/mem=100KB-16                          1.18MB ± 0%     1.14MB ± 0%    -4.11%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetoone/lookuprows=1024/mem=unlimited-16                      1.18MB ± 0%     1.14MB ± 0%    -3.80%  (p=0.016 n=4+5)
JoinReader/reqOrdering=true/matchratio=onetoone/lookuprows=4096/mem=100KB-16                          4.50MB ± 0%     4.35MB ± 1%    -3.36%  (p=0.016 n=4+5)
JoinReader/reqOrdering=true/matchratio=onetoone/lookuprows=4096/mem=unlimited-16                      4.51MB ± 0%     4.34MB ± 0%    -3.75%  (p=0.016 n=4+5)
JoinReader/reqOrdering=true/matchratio=onetoone/lookuprows=8192/mem=100KB-16                          8.93MB ± 0%     8.61MB ± 0%    -3.66%  (p=0.029 n=4+4)
JoinReader/reqOrdering=true/matchratio=onetoone/lookuprows=8192/mem=unlimited-16                      8.94MB ± 0%     8.61MB ± 0%    -3.69%  (p=0.016 n=4+5)
JoinReader/reqOrdering=true/matchratio=onetoone/lookuprows=16384/mem=100KB-16                         17.8MB ± 0%     17.3MB ± 3%      ~     (p=0.056 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetoone/lookuprows=16384/mem=unlimited-16                     17.9MB ± 3%     17.1MB ± 0%    -4.66%  (p=0.016 n=5+4)
JoinReader/reqOrdering=true/matchratio=onetoone/lookuprows=32768/mem=100KB-16                         35.6MB ± 0%     34.5MB ± 3%      ~     (p=0.095 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetoone/lookuprows=32768/mem=unlimited-16                     35.5MB ± 0%     34.6MB ± 3%      ~     (p=0.151 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetoone/lookuprows=65536/mem=100KB-16                         71.0MB ± 0%     68.9MB ± 3%    -2.95%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetoone/lookuprows=65536/mem=unlimited-16                     71.1MB ± 0%     68.5MB ± 0%    -3.71%  (p=0.016 n=5+4)
JoinReader/reqOrdering=true/matchratio=onetoone/lookuprows=524288/mem=100KB-16                         569MB ± 1%      552MB ± 1%    -3.03%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetoone/lookuprows=524288/mem=unlimited-16                     572MB ± 1%      550MB ± 1%    -3.70%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetofour/lookuprows=1/mem=100KB/parallel=true-16              30.0kB ± 0%     25.6kB ± 0%   -14.76%  (p=0.016 n=5+4)
JoinReader/reqOrdering=true/matchratio=onetofour/lookuprows=1/mem=100KB-16                            30.0kB ± 0%     25.6kB ± 0%   -14.65%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetofour/lookuprows=1/mem=unlimited/parallel=true-16          30.0kB ± 0%     25.7kB ± 1%   -14.40%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetofour/lookuprows=1/mem=unlimited-16                        30.0kB ± 0%     25.6kB ± 0%   -14.70%  (p=0.016 n=5+4)
JoinReader/reqOrdering=true/matchratio=onetofour/lookuprows=16/mem=100KB-16                           55.4kB ± 0%     48.7kB ± 1%   -11.99%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetofour/lookuprows=16/mem=unlimited-16                       55.4kB ± 0%     48.5kB ± 0%   -12.31%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetofour/lookuprows=256/mem=100KB-16                           497kB ± 0%      437kB ± 0%   -12.05%  (p=0.029 n=4+4)
JoinReader/reqOrdering=true/matchratio=onetofour/lookuprows=256/mem=unlimited-16                       497kB ± 0%      438kB ± 0%   -11.99%  (p=0.016 n=5+4)
JoinReader/reqOrdering=true/matchratio=onetofour/lookuprows=1024/mem=100KB-16                         1.60MB ± 3%     1.41MB ± 0%   -12.03%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetofour/lookuprows=1024/mem=unlimited-16                     1.59MB ± 0%     1.41MB ± 0%   -11.48%  (p=0.016 n=4+5)
JoinReader/reqOrdering=true/matchratio=onetofour/lookuprows=4096/mem=100KB-16                         5.98MB ± 0%     5.30MB ± 0%   -11.27%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetofour/lookuprows=4096/mem=unlimited-16                     5.98MB ± 0%     5.31MB ± 0%   -11.24%  (p=0.029 n=4+4)
JoinReader/reqOrdering=true/matchratio=onetofour/lookuprows=8192/mem=100KB-16                         11.9MB ± 3%     10.6MB ± 3%   -11.32%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetofour/lookuprows=8192/mem=unlimited-16                     11.8MB ± 0%     10.5MB ± 0%   -11.11%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetofour/lookuprows=16384/mem=100KB-16                        23.5MB ± 0%     21.0MB ± 3%   -10.49%  (p=0.016 n=4+5)
JoinReader/reqOrdering=true/matchratio=onetofour/lookuprows=16384/mem=unlimited-16                    23.5MB ± 0%     20.9MB ± 0%   -11.16%  (p=0.016 n=5+4)
JoinReader/reqOrdering=true/matchratio=onetofour/lookuprows=32768/mem=100KB-16                        46.9MB ± 0%     42.0MB ± 3%   -10.46%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetofour/lookuprows=32768/mem=unlimited-16                    47.3MB ± 3%     41.7MB ± 0%   -11.81%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetofour/lookuprows=65536/mem=100KB-16                        93.6MB ± 0%     84.0MB ± 3%   -10.23%  (p=0.016 n=4+5)
JoinReader/reqOrdering=true/matchratio=onetofour/lookuprows=65536/mem=unlimited-16                    93.6MB ± 0%     83.9MB ± 4%   -10.41%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetosixteen/lookuprows=1/mem=100KB/parallel=true-16           31.7kB ± 0%     26.8kB ± 0%   -15.39%  (p=0.016 n=4+5)
JoinReader/reqOrdering=true/matchratio=onetosixteen/lookuprows=1/mem=100KB-16                         31.7kB ± 0%     26.8kB ± 0%   -15.36%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetosixteen/lookuprows=1/mem=unlimited/parallel=true-16       31.6kB ± 0%     26.8kB ± 0%   -15.44%  (p=0.029 n=4+4)
JoinReader/reqOrdering=true/matchratio=onetosixteen/lookuprows=1/mem=unlimited-16                     31.7kB ± 0%     26.8kB ± 0%   -15.48%  (p=0.016 n=5+4)
JoinReader/reqOrdering=true/matchratio=onetosixteen/lookuprows=16/mem=100KB-16                         108kB ± 0%       88kB ± 1%   -18.77%  (p=0.016 n=4+5)
JoinReader/reqOrdering=true/matchratio=onetosixteen/lookuprows=16/mem=unlimited-16                     108kB ± 0%       87kB ± 0%   -19.12%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetosixteen/lookuprows=256/mem=100KB-16                       1.89MB ± 2%     3.36MB ± 0%   +77.95%  (p=0.016 n=5+4)
JoinReader/reqOrdering=true/matchratio=onetosixteen/lookuprows=256/mem=unlimited-16                   1.10MB ± 0%     0.90MB ± 2%   -18.48%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetosixteen/lookuprows=1024/mem=100KB-16                      7.19MB ± 0%    13.19MB ± 0%   +83.40%  (p=0.029 n=4+4)
JoinReader/reqOrdering=true/matchratio=onetosixteen/lookuprows=1024/mem=unlimited-16                  3.40MB ± 2%     2.67MB ± 0%   -21.24%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetosixteen/lookuprows=4096/mem=100KB-16                      28.4MB ± 0%     52.5MB ± 0%   +84.74%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetosixteen/lookuprows=4096/mem=unlimited-16                  12.5MB ± 0%      9.8MB ± 0%   -21.43%  (p=0.029 n=4+4)
JoinReader/reqOrdering=true/matchratio=onetosixteen/lookuprows=8192/mem=100KB-16                      56.8MB ± 0%    105.2MB ± 1%   +85.20%  (p=0.016 n=4+5)
JoinReader/reqOrdering=true/matchratio=onetosixteen/lookuprows=8192/mem=unlimited-16                  24.6MB ± 0%     19.5MB ± 3%   -20.89%  (p=0.016 n=4+5)
JoinReader/reqOrdering=true/matchratio=onetosixteen/lookuprows=16384/mem=100KB-16                      114MB ± 0%      210MB ± 0%   +84.97%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetosixteen/lookuprows=16384/mem=unlimited-16                 48.9MB ± 0%     38.4MB ± 0%   -21.56%  (p=0.016 n=4+5)
JoinReader/reqOrdering=true/matchratio=onetosixteen/lookuprows=32768/mem=100KB-16                      228MB ± 0%      421MB ± 0%   +85.08%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetosixteen/lookuprows=32768/mem=unlimited-16                 97.5MB ± 0%     76.6MB ± 0%   -21.50%  (p=0.016 n=5+4)
JoinReader/reqOrdering=true/matchratio=onetothirtytwo/lookuprows=1/mem=100KB/parallel=true-16         34.0kB ± 0%     28.5kB ± 0%   -16.26%  (p=0.029 n=4+4)
JoinReader/reqOrdering=true/matchratio=onetothirtytwo/lookuprows=1/mem=100KB-16                       34.0kB ± 0%     28.5kB ± 0%   -16.27%  (p=0.029 n=4+4)
JoinReader/reqOrdering=true/matchratio=onetothirtytwo/lookuprows=1/mem=unlimited/parallel=true-16     34.0kB ± 0%     28.5kB ± 0%   -16.28%  (p=0.016 n=4+5)
JoinReader/reqOrdering=true/matchratio=onetothirtytwo/lookuprows=1/mem=unlimited-16                   34.0kB ± 0%     28.5kB ± 0%   -16.28%  (p=0.029 n=4+4)
JoinReader/reqOrdering=true/matchratio=onetothirtytwo/lookuprows=16/mem=100KB-16                       179kB ± 0%      140kB ± 1%   -21.71%  (p=0.016 n=4+5)
JoinReader/reqOrdering=true/matchratio=onetothirtytwo/lookuprows=16/mem=unlimited-16                   179kB ± 0%      140kB ± 0%   -21.87%  (p=0.016 n=5+4)
JoinReader/reqOrdering=true/matchratio=onetothirtytwo/lookuprows=256/mem=100KB-16                     3.13MB ± 0%     5.98MB ± 0%   +91.12%  (p=0.016 n=4+5)
JoinReader/reqOrdering=true/matchratio=onetothirtytwo/lookuprows=256/mem=unlimited-16                 1.92MB ± 0%     1.50MB ± 0%   -21.57%  (p=0.016 n=5+4)
JoinReader/reqOrdering=true/matchratio=onetothirtytwo/lookuprows=1024/mem=100KB-16                    12.2MB ± 3%     23.6MB ± 0%   +93.52%  (p=0.016 n=5+4)
JoinReader/reqOrdering=true/matchratio=onetothirtytwo/lookuprows=1024/mem=unlimited-16                5.83MB ± 0%     4.42MB ± 0%   -24.06%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetothirtytwo/lookuprows=4096/mem=100KB-16                    48.0MB ± 0%     94.2MB ± 1%   +96.42%  (p=0.016 n=4+5)
JoinReader/reqOrdering=true/matchratio=onetothirtytwo/lookuprows=4096/mem=unlimited-16                21.5MB ± 0%     16.1MB ± 0%   -25.01%  (p=0.016 n=4+5)
JoinReader/reqOrdering=true/matchratio=onetothirtytwo/lookuprows=8192/mem=100KB-16                    95.8MB ± 0%    189.5MB ± 2%   +97.73%  (p=0.016 n=4+5)
JoinReader/reqOrdering=true/matchratio=onetothirtytwo/lookuprows=8192/mem=unlimited-16                42.3MB ± 0%     31.9MB ± 3%   -24.53%  (p=0.016 n=4+5)
JoinReader/reqOrdering=true/matchratio=onetothirtytwo/lookuprows=16384/mem=100KB-16                    193MB ± 0%      376MB ± 0%   +95.48%  (p=0.016 n=5+4)
JoinReader/reqOrdering=true/matchratio=onetothirtytwo/lookuprows=16384/mem=unlimited-16               83.9MB ± 0%     62.8MB ± 0%   -25.19%  (p=0.016 n=4+5)
JoinReader/reqOrdering=true/matchratio=onetosixtyfour/lookuprows=1/mem=100KB/parallel=true-16         38.4kB ± 0%     31.6kB ± 0%   -17.75%  (p=0.016 n=5+4)
JoinReader/reqOrdering=true/matchratio=onetosixtyfour/lookuprows=1/mem=100KB-16                       38.4kB ± 0%     31.6kB ± 0%   -17.77%  (p=0.029 n=4+4)
JoinReader/reqOrdering=true/matchratio=onetosixtyfour/lookuprows=1/mem=unlimited/parallel=true-16     38.4kB ± 0%     31.7kB ± 1%   -17.52%  (p=0.016 n=4+5)
JoinReader/reqOrdering=true/matchratio=onetosixtyfour/lookuprows=1/mem=unlimited-16                   38.4kB ± 0%     31.6kB ± 0%   -17.73%  (p=0.029 n=4+4)
JoinReader/reqOrdering=true/matchratio=onetosixtyfour/lookuprows=16/mem=100KB-16                       538kB ± 2%      937kB ± 0%   +74.23%  (p=0.016 n=5+4)
JoinReader/reqOrdering=true/matchratio=onetosixtyfour/lookuprows=16/mem=unlimited-16                   307kB ± 1%      238kB ± 0%   -22.40%  (p=0.016 n=5+4)
JoinReader/reqOrdering=true/matchratio=onetosixtyfour/lookuprows=256/mem=100KB-16                     5.54MB ± 0%    11.79MB ± 0%  +112.64%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetosixtyfour/lookuprows=256/mem=unlimited-16                 3.51MB ± 0%     2.70MB ± 0%   -23.21%  (p=0.029 n=4+4)
JoinReader/reqOrdering=true/matchratio=onetosixtyfour/lookuprows=1024/mem=100KB-16                    21.6MB ± 0%     46.6MB ± 0%  +115.77%  (p=0.016 n=4+5)
JoinReader/reqOrdering=true/matchratio=onetosixtyfour/lookuprows=1024/mem=unlimited-16                10.4MB ± 0%      7.6MB ± 0%   -26.93%  (p=0.016 n=5+4)
JoinReader/reqOrdering=true/matchratio=onetosixtyfour/lookuprows=4096/mem=100KB-16                    85.7MB ± 0%    186.6MB ± 1%  +117.61%  (p=0.016 n=4+5)
JoinReader/reqOrdering=true/matchratio=onetosixtyfour/lookuprows=4096/mem=unlimited-16                38.1MB ± 2%     27.1MB ± 0%   -28.77%  (p=0.016 n=5+4)
JoinReader/reqOrdering=true/matchratio=onetosixtyfour/lookuprows=8192/mem=100KB-16                     172MB ± 1%      372MB ± 0%  +115.86%  (p=0.016 n=5+4)
JoinReader/reqOrdering=true/matchratio=onetosixtyfour/lookuprows=8192/mem=unlimited-16                74.5MB ± 0%     54.1MB ± 3%   -27.37%  (p=0.008 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetoone/lookuprows=1/mem=unlimited/parallel=true-16          16.7kB ± 0%     16.7kB ± 0%      ~     (p=0.143 n=4+4)
JoinReader/reqOrdering=false/matchratio=onetoone/lookuprows=1/mem=unlimited-16                        16.7kB ± 0%     16.7kB ± 1%      ~     (p=1.000 n=4+5)
JoinReader/reqOrdering=false/matchratio=onetoone/lookuprows=16/mem=unlimited-16                       34.9kB ± 1%     35.1kB ± 2%      ~     (p=0.310 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetoone/lookuprows=256/mem=unlimited-16                       357kB ± 0%      357kB ± 0%      ~     (p=0.905 n=4+5)
JoinReader/reqOrdering=false/matchratio=onetoone/lookuprows=1024/mem=unlimited-16                     1.38MB ± 2%     1.37MB ± 0%      ~     (p=0.690 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetoone/lookuprows=4096/mem=unlimited-16                     6.73MB ± 0%     6.76MB ± 2%      ~     (p=0.730 n=4+5)
JoinReader/reqOrdering=false/matchratio=onetoone/lookuprows=8192/mem=unlimited-16                     14.0MB ± 0%     14.1MB ± 2%      ~     (p=0.690 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetoone/lookuprows=16384/mem=unlimited-16                    34.3MB ± 0%     34.3MB ± 0%      ~     (p=0.905 n=4+5)
JoinReader/reqOrdering=false/matchratio=onetoone/lookuprows=32768/mem=unlimited-16                    73.4MB ± 1%     73.4MB ± 2%      ~     (p=0.841 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetoone/lookuprows=65536/mem=unlimited-16                     136MB ± 0%      136MB ± 0%      ~     (p=0.200 n=4+4)
JoinReader/reqOrdering=false/matchratio=onetoone/lookuprows=524288/mem=unlimited-16                   1.06GB ± 0%     1.06GB ± 0%      ~     (p=0.690 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetofour/lookuprows=1/mem=unlimited/parallel=true-16         16.9kB ± 1%     16.9kB ± 0%      ~     (p=1.000 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetofour/lookuprows=1/mem=unlimited-16                       16.8kB ± 0%     16.9kB ± 0%      ~     (p=0.486 n=4+4)
JoinReader/reqOrdering=false/matchratio=onetofour/lookuprows=16/mem=unlimited-16                      37.9kB ± 2%     37.7kB ± 0%      ~     (p=0.365 n=5+4)
JoinReader/reqOrdering=false/matchratio=onetofour/lookuprows=256/mem=unlimited-16                      402kB ± 0%      402kB ± 0%      ~     (p=0.310 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetofour/lookuprows=1024/mem=unlimited-16                    1.55MB ± 0%     1.56MB ± 0%      ~     (p=0.413 n=4+5)
JoinReader/reqOrdering=false/matchratio=onetofour/lookuprows=4096/mem=unlimited-16                    8.80MB ± 2%     8.80MB ± 2%      ~     (p=0.841 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetofour/lookuprows=8192/mem=unlimited-16                    24.3MB ± 0%     24.3MB ± 0%      ~     (p=1.000 n=4+5)
JoinReader/reqOrdering=false/matchratio=onetofour/lookuprows=16384/mem=unlimited-16                   74.0MB ± 0%     74.3MB ± 1%      ~     (p=0.286 n=4+5)
JoinReader/reqOrdering=false/matchratio=onetofour/lookuprows=32768/mem=unlimited-16                    180MB ± 0%      180MB ± 0%      ~     (p=0.114 n=4+4)
JoinReader/reqOrdering=false/matchratio=onetofour/lookuprows=65536/mem=unlimited-16                    362MB ± 1%      354MB ± 1%    -2.29%  (p=0.008 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetosixteen/lookuprows=1/mem=unlimited/parallel=true-16      17.7kB ± 0%     17.7kB ± 0%      ~     (p=0.190 n=4+5)
JoinReader/reqOrdering=false/matchratio=onetosixteen/lookuprows=1/mem=unlimited-16                    17.7kB ± 0%     17.7kB ± 0%      ~     (p=0.905 n=4+5)
JoinReader/reqOrdering=false/matchratio=onetosixteen/lookuprows=16/mem=unlimited-16                   51.6kB ± 0%     51.6kB ± 0%      ~     (p=0.730 n=5+4)
JoinReader/reqOrdering=false/matchratio=onetosixteen/lookuprows=256/mem=unlimited-16                   623kB ± 0%      623kB ± 0%      ~     (p=0.886 n=4+4)
JoinReader/reqOrdering=false/matchratio=onetosixteen/lookuprows=1024/mem=unlimited-16                 2.76MB ± 0%     2.76MB ± 0%      ~     (p=1.000 n=4+5)
JoinReader/reqOrdering=false/matchratio=onetosixteen/lookuprows=4096/mem=unlimited-16                 21.0MB ± 0%     21.0MB ± 1%      ~     (p=0.548 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetosixteen/lookuprows=8192/mem=unlimited-16                 67.5MB ± 0%     67.7MB ± 1%      ~     (p=0.556 n=4+5)
JoinReader/reqOrdering=false/matchratio=onetosixteen/lookuprows=16384/mem=unlimited-16                 238MB ± 0%      238MB ± 0%      ~     (p=0.286 n=4+5)
JoinReader/reqOrdering=false/matchratio=onetosixteen/lookuprows=32768/mem=unlimited-16                 618MB ± 1%      617MB ± 0%      ~     (p=0.730 n=5+4)
JoinReader/reqOrdering=false/matchratio=onetothirtytwo/lookuprows=1/mem=unlimited/parallel=true-16    19.0kB ± 0%     19.0kB ± 1%      ~     (p=1.000 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetothirtytwo/lookuprows=1/mem=unlimited-16                  18.9kB ± 0%     18.9kB ± 0%      ~     (p=0.286 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetothirtytwo/lookuprows=16/mem=unlimited-16                 71.1kB ± 0%     71.1kB ± 0%      ~     (p=0.905 n=4+5)
JoinReader/reqOrdering=false/matchratio=onetothirtytwo/lookuprows=256/mem=unlimited-16                 936kB ± 0%      936kB ± 0%      ~     (p=0.730 n=5+4)
JoinReader/reqOrdering=false/matchratio=onetothirtytwo/lookuprows=1024/mem=unlimited-16               4.67MB ± 0%     4.67MB ± 0%      ~     (p=0.343 n=4+4)
JoinReader/reqOrdering=false/matchratio=onetothirtytwo/lookuprows=4096/mem=unlimited-16               37.7MB ± 0%     37.9MB ± 1%      ~     (p=0.310 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetothirtytwo/lookuprows=8192/mem=unlimited-16                126MB ± 0%      126MB ± 0%      ~     (p=0.686 n=4+4)
JoinReader/reqOrdering=false/matchratio=onetothirtytwo/lookuprows=16384/mem=unlimited-16               457MB ± 0%      457MB ± 0%      ~     (p=0.343 n=4+4)
JoinReader/reqOrdering=false/matchratio=onetosixtyfour/lookuprows=1/mem=unlimited/parallel=true-16    21.0kB ± 0%     21.1kB ± 1%      ~     (p=0.730 n=4+5)
JoinReader/reqOrdering=false/matchratio=onetosixtyfour/lookuprows=1/mem=unlimited-16                  21.0kB ± 1%     21.0kB ± 0%      ~     (p=0.286 n=5+4)
JoinReader/reqOrdering=false/matchratio=onetosixtyfour/lookuprows=16/mem=unlimited-16                  104kB ± 0%      104kB ± 0%      ~     (p=0.556 n=5+4)
JoinReader/reqOrdering=false/matchratio=onetosixtyfour/lookuprows=256/mem=unlimited-16                1.54MB ± 0%     1.54MB ± 0%      ~     (p=0.413 n=5+4)
JoinReader/reqOrdering=false/matchratio=onetosixtyfour/lookuprows=1024/mem=unlimited-16               8.23MB ± 0%     8.13MB ± 0%    -1.28%  (p=0.029 n=4+4)
JoinReader/reqOrdering=false/matchratio=onetosixtyfour/lookuprows=4096/mem=unlimited-16               63.1MB ± 0%     69.6MB ± 0%   +10.32%  (p=0.029 n=4+4)
JoinReader/reqOrdering=false/matchratio=onetosixtyfour/lookuprows=8192/mem=unlimited-16                225MB ± 0%      240MB ± 0%    +7.07%  (p=0.016 n=4+5)

name                                                                                                old allocs/op  new allocs/op   delta
JoinReader/reqOrdering=true/matchratio=onetoone/lookuprows=1/mem=100KB/parallel=true-16                  134 ± 0%        130 ± 0%    -2.99%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetoone/lookuprows=1/mem=100KB-16                                134 ± 0%        130 ± 0%    -2.99%  (p=0.000 n=5+4)
JoinReader/reqOrdering=true/matchratio=onetoone/lookuprows=1/mem=unlimited/parallel=true-16              134 ± 0%        130 ± 0%      ~     (p=0.079 n=4+5)
JoinReader/reqOrdering=true/matchratio=onetoone/lookuprows=1/mem=unlimited-16                            134 ± 0%        130 ± 0%    -2.99%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetoone/lookuprows=16/mem=100KB-16                               359 ± 0%        325 ± 0%    -9.47%  (p=0.029 n=4+4)
JoinReader/reqOrdering=true/matchratio=onetoone/lookuprows=16/mem=unlimited-16                           359 ± 0%        325 ± 0%    -9.47%  (p=0.029 n=4+4)
JoinReader/reqOrdering=true/matchratio=onetoone/lookuprows=256/mem=100KB-16                            4.02k ± 0%      3.51k ± 0%   -12.78%  (p=0.000 n=5+4)
JoinReader/reqOrdering=true/matchratio=onetoone/lookuprows=256/mem=unlimited-16                        4.02k ± 0%      3.51k ± 0%   -12.78%  (p=0.029 n=4+4)
JoinReader/reqOrdering=true/matchratio=onetoone/lookuprows=1024/mem=100KB-16                           15.3k ± 0%      13.3k ± 0%   -13.37%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetoone/lookuprows=1024/mem=unlimited-16                       15.3k ± 0%      13.3k ± 0%   -13.35%  (p=0.029 n=4+4)
JoinReader/reqOrdering=true/matchratio=onetoone/lookuprows=4096/mem=100KB-16                           60.7k ± 0%      52.5k ± 0%   -13.47%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetoone/lookuprows=4096/mem=unlimited-16                       60.6k ± 0%      52.5k ± 0%   -13.51%  (p=0.016 n=4+5)
JoinReader/reqOrdering=true/matchratio=onetoone/lookuprows=8192/mem=100KB-16                            121k ± 0%       105k ± 0%   -13.53%  (p=0.029 n=4+4)
JoinReader/reqOrdering=true/matchratio=onetoone/lookuprows=8192/mem=unlimited-16                        121k ± 0%       105k ± 0%   -13.53%  (p=0.016 n=4+5)
JoinReader/reqOrdering=true/matchratio=onetoone/lookuprows=16384/mem=100KB-16                           242k ± 0%       209k ± 1%   -13.41%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetoone/lookuprows=16384/mem=unlimited-16                       242k ± 0%       209k ± 0%   -13.71%  (p=0.000 n=5+4)
JoinReader/reqOrdering=true/matchratio=onetoone/lookuprows=32768/mem=100KB-16                           483k ± 0%       418k ± 1%   -13.40%  (p=0.016 n=4+5)
JoinReader/reqOrdering=true/matchratio=onetoone/lookuprows=32768/mem=unlimited-16                       483k ± 0%       419k ± 1%   -13.28%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetoone/lookuprows=65536/mem=100KB-16                           966k ± 0%       837k ± 0%   -13.41%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetoone/lookuprows=65536/mem=unlimited-16                       967k ± 0%       837k ± 0%   -13.46%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetoone/lookuprows=524288/mem=100KB-16                         7.73M ± 0%      6.69M ± 0%   -13.44%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetoone/lookuprows=524288/mem=unlimited-16                     7.74M ± 0%      6.69M ± 0%   -13.55%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetofour/lookuprows=1/mem=100KB/parallel=true-16                 143 ± 0%        133 ± 0%    -6.99%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetofour/lookuprows=1/mem=100KB-16                               143 ± 0%        133 ± 0%    -6.99%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetofour/lookuprows=1/mem=unlimited/parallel=true-16             143 ± 0%        133 ± 0%    -6.99%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetofour/lookuprows=1/mem=unlimited-16                           143 ± 0%        133 ± 0%    -6.99%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetofour/lookuprows=16/mem=100KB-16                              524 ± 0%        394 ± 0%   -24.81%  (p=0.000 n=5+4)
JoinReader/reqOrdering=true/matchratio=onetofour/lookuprows=16/mem=unlimited-16                          524 ± 0%        394 ± 0%   -24.81%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetofour/lookuprows=256/mem=100KB-16                           6.43k ± 0%      4.38k ± 0%   -31.90%  (p=0.029 n=4+4)
JoinReader/reqOrdering=true/matchratio=onetofour/lookuprows=256/mem=unlimited-16                       6.43k ± 0%      4.38k ± 0%   -31.90%  (p=0.000 n=5+4)
JoinReader/reqOrdering=true/matchratio=onetofour/lookuprows=1024/mem=100KB-16                          24.2k ± 0%      16.0k ± 0%   -33.89%  (p=0.016 n=4+5)
JoinReader/reqOrdering=true/matchratio=onetofour/lookuprows=1024/mem=unlimited-16                      24.2k ± 0%      16.0k ± 0%   -33.90%  (p=0.029 n=4+4)
JoinReader/reqOrdering=true/matchratio=onetofour/lookuprows=4096/mem=100KB-16                          95.2k ± 0%      62.4k ± 0%   -34.41%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetofour/lookuprows=4096/mem=unlimited-16                      95.2k ± 0%      62.4k ± 0%   -34.42%  (p=0.029 n=4+4)
JoinReader/reqOrdering=true/matchratio=onetofour/lookuprows=8192/mem=100KB-16                           190k ± 0%       125k ± 0%   -34.49%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetofour/lookuprows=8192/mem=unlimited-16                       190k ± 0%       124k ± 0%   -34.47%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetofour/lookuprows=16384/mem=100KB-16                          379k ± 0%       249k ± 1%   -34.45%  (p=0.016 n=4+5)
JoinReader/reqOrdering=true/matchratio=onetofour/lookuprows=16384/mem=unlimited-16                      379k ± 0%       249k ± 1%   -34.39%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetofour/lookuprows=32768/mem=100KB-16                          758k ± 0%       497k ± 0%   -34.46%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetofour/lookuprows=32768/mem=unlimited-16                      759k ± 0%       496k ± 0%   -34.64%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetofour/lookuprows=65536/mem=100KB-16                         1.52M ± 0%      0.99M ± 0%   -34.42%  (p=0.016 n=4+5)
JoinReader/reqOrdering=true/matchratio=onetofour/lookuprows=65536/mem=unlimited-16                     1.52M ± 0%      0.99M ± 0%   -34.59%  (p=0.016 n=5+4)
JoinReader/reqOrdering=true/matchratio=onetosixteen/lookuprows=1/mem=100KB/parallel=true-16              173 ± 0%        139 ± 0%   -19.65%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetosixteen/lookuprows=1/mem=100KB-16                            173 ± 0%        139 ± 0%   -19.65%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetosixteen/lookuprows=1/mem=unlimited/parallel=true-16          173 ± 0%        139 ± 0%   -19.65%  (p=0.000 n=5+4)
JoinReader/reqOrdering=true/matchratio=onetosixteen/lookuprows=1/mem=unlimited-16                        173 ± 0%        139 ± 0%   -19.65%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetosixteen/lookuprows=16/mem=100KB-16                         1.02k ± 0%      0.50k ± 0%   -50.44%  (p=0.016 n=4+5)
JoinReader/reqOrdering=true/matchratio=onetosixteen/lookuprows=16/mem=unlimited-16                     1.02k ± 0%      0.50k ± 0%   -50.54%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetosixteen/lookuprows=256/mem=100KB-16                        19.4k ± 0%      15.2k ± 0%   -21.60%  (p=0.029 n=4+4)
JoinReader/reqOrdering=true/matchratio=onetosixteen/lookuprows=256/mem=unlimited-16                    14.0k ± 0%       5.8k ± 1%   -58.46%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetosixteen/lookuprows=1024/mem=100KB-16                       75.0k ± 0%      58.5k ± 0%   -22.10%  (p=0.029 n=4+4)
JoinReader/reqOrdering=true/matchratio=onetosixteen/lookuprows=1024/mem=unlimited-16                   53.6k ± 0%      20.9k ± 0%   -61.10%  (p=0.016 n=4+5)
JoinReader/reqOrdering=true/matchratio=onetosixteen/lookuprows=4096/mem=100KB-16                        298k ± 0%       232k ± 0%   -22.20%  (p=0.016 n=5+4)
JoinReader/reqOrdering=true/matchratio=onetosixteen/lookuprows=4096/mem=unlimited-16                    212k ± 0%        81k ± 0%   -61.77%  (p=0.029 n=4+4)
JoinReader/reqOrdering=true/matchratio=onetosixteen/lookuprows=8192/mem=100KB-16                        595k ± 0%       462k ± 0%   -22.25%  (p=0.029 n=4+4)
JoinReader/reqOrdering=true/matchratio=onetosixteen/lookuprows=8192/mem=unlimited-16                    424k ± 0%       162k ± 0%   -61.88%  (p=0.029 n=4+4)
JoinReader/reqOrdering=true/matchratio=onetosixteen/lookuprows=16384/mem=100KB-16                      1.19M ± 0%      0.92M ± 0%   -22.25%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetosixteen/lookuprows=16384/mem=unlimited-16                   846k ± 0%       322k ± 0%   -61.94%  (p=0.016 n=4+5)
JoinReader/reqOrdering=true/matchratio=onetosixteen/lookuprows=32768/mem=100KB-16                      2.38M ± 0%      1.85M ± 0%   -22.24%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetosixteen/lookuprows=32768/mem=unlimited-16                  1.69M ± 0%      0.64M ± 0%   -61.96%  (p=0.016 n=5+4)
JoinReader/reqOrdering=true/matchratio=onetothirtytwo/lookuprows=1/mem=100KB/parallel=true-16            210 ± 0%        144 ± 0%   -31.43%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetothirtytwo/lookuprows=1/mem=100KB-16                          210 ± 0%        144 ± 0%   -31.43%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetothirtytwo/lookuprows=1/mem=unlimited/parallel=true-16        210 ± 0%        144 ± 0%   -31.43%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetothirtytwo/lookuprows=1/mem=unlimited-16                      210 ± 0%        144 ± 0%      ~     (p=0.079 n=4+5)
JoinReader/reqOrdering=true/matchratio=onetothirtytwo/lookuprows=16/mem=100KB-16                       1.62k ± 0%      0.59k ± 0%   -63.63%  (p=0.000 n=5+4)
JoinReader/reqOrdering=true/matchratio=onetothirtytwo/lookuprows=16/mem=unlimited-16                   1.61k ± 0%      0.59k ± 0%   -63.57%  (p=0.029 n=4+4)
JoinReader/reqOrdering=true/matchratio=onetothirtytwo/lookuprows=256/mem=100KB-16                      33.8k ± 0%      25.5k ± 0%   -24.59%  (p=0.016 n=4+5)
JoinReader/reqOrdering=true/matchratio=onetothirtytwo/lookuprows=256/mem=unlimited-16                  23.3k ± 0%       7.0k ± 0%   -70.20%  (p=0.016 n=5+4)
JoinReader/reqOrdering=true/matchratio=onetothirtytwo/lookuprows=1024/mem=100KB-16                      132k ± 0%        99k ± 0%   -24.98%  (p=0.029 n=4+4)
JoinReader/reqOrdering=true/matchratio=onetothirtytwo/lookuprows=1024/mem=unlimited-16                 90.6k ± 0%      25.1k ± 0%   -72.31%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetothirtytwo/lookuprows=4096/mem=100KB-16                      526k ± 0%       394k ± 0%   -25.11%  (p=0.029 n=4+4)
JoinReader/reqOrdering=true/matchratio=onetothirtytwo/lookuprows=4096/mem=unlimited-16                  360k ± 0%        98k ± 0%   -72.86%  (p=0.016 n=4+5)
JoinReader/reqOrdering=true/matchratio=onetothirtytwo/lookuprows=8192/mem=100KB-16                     1.05M ± 0%      0.79M ± 1%   -24.80%  (p=0.016 n=4+5)
JoinReader/reqOrdering=true/matchratio=onetothirtytwo/lookuprows=8192/mem=unlimited-16                  719k ± 0%       194k ± 0%   -72.95%  (p=0.029 n=4+4)
JoinReader/reqOrdering=true/matchratio=onetothirtytwo/lookuprows=16384/mem=100KB-16                    2.10M ± 0%      1.58M ± 0%   -25.03%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetothirtytwo/lookuprows=16384/mem=unlimited-16                1.44M ± 0%      0.39M ± 0%   -72.99%  (p=0.016 n=4+5)
JoinReader/reqOrdering=true/matchratio=onetosixtyfour/lookuprows=1/mem=100KB/parallel=true-16            280 ± 0%        150 ± 0%   -46.43%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetosixtyfour/lookuprows=1/mem=100KB-16                          280 ± 0%        150 ± 0%   -46.43%  (p=0.029 n=4+4)
JoinReader/reqOrdering=true/matchratio=onetosixtyfour/lookuprows=1/mem=unlimited/parallel=true-16        280 ± 0%        150 ± 0%   -46.43%  (p=0.029 n=4+4)
JoinReader/reqOrdering=true/matchratio=onetosixtyfour/lookuprows=1/mem=unlimited-16                      280 ± 0%        150 ± 0%      ~     (p=0.079 n=4+5)
JoinReader/reqOrdering=true/matchratio=onetosixtyfour/lookuprows=16/mem=100KB-16                       4.19k ± 0%      3.10k ± 0%   -26.07%  (p=0.000 n=5+4)
JoinReader/reqOrdering=true/matchratio=onetosixtyfour/lookuprows=16/mem=unlimited-16                   2.74k ± 0%      0.69k ± 1%   -74.77%  (p=0.016 n=4+5)
JoinReader/reqOrdering=true/matchratio=onetosixtyfour/lookuprows=256/mem=100KB-16                      61.7k ± 0%      45.4k ± 0%   -26.46%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetosixtyfour/lookuprows=256/mem=unlimited-16                  41.1k ± 0%       8.4k ± 0%   -79.64%  (p=0.029 n=4+4)
JoinReader/reqOrdering=true/matchratio=onetosixtyfour/lookuprows=1024/mem=100KB-16                      244k ± 1%       178k ± 0%   -26.87%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetosixtyfour/lookuprows=1024/mem=unlimited-16                  161k ± 0%        30k ± 0%   -81.19%  (p=0.016 n=5+4)
JoinReader/reqOrdering=true/matchratio=onetosixtyfour/lookuprows=4096/mem=100KB-16                      973k ± 0%       713k ± 0%   -26.73%  (p=0.008 n=5+5)
JoinReader/reqOrdering=true/matchratio=onetosixtyfour/lookuprows=4096/mem=unlimited-16                  643k ± 0%       118k ± 0%   -81.59%  (p=0.029 n=4+4)
JoinReader/reqOrdering=true/matchratio=onetosixtyfour/lookuprows=8192/mem=100KB-16                     1.94M ± 0%      1.42M ± 0%   -26.90%  (p=0.016 n=5+4)
JoinReader/reqOrdering=true/matchratio=onetosixtyfour/lookuprows=8192/mem=unlimited-16                 1.28M ± 0%      0.24M ± 1%   -81.51%  (p=0.008 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetoone/lookuprows=1/mem=unlimited/parallel=true-16             119 ± 0%        119 ± 0%      ~     (all equal)
JoinReader/reqOrdering=false/matchratio=onetoone/lookuprows=1/mem=unlimited-16                           119 ± 0%        119 ± 0%      ~     (all equal)
JoinReader/reqOrdering=false/matchratio=onetoone/lookuprows=16/mem=unlimited-16                          298 ± 0%        299 ± 0%      ~     (p=0.556 n=4+5)
JoinReader/reqOrdering=false/matchratio=onetoone/lookuprows=256/mem=unlimited-16                       3.27k ± 0%      3.27k ± 0%      ~     (p=0.556 n=4+5)
JoinReader/reqOrdering=false/matchratio=onetoone/lookuprows=1024/mem=unlimited-16                      12.6k ± 0%      12.6k ± 0%      ~     (p=0.857 n=4+5)
JoinReader/reqOrdering=false/matchratio=onetoone/lookuprows=4096/mem=unlimited-16                      49.7k ± 0%      49.7k ± 0%      ~     (p=0.286 n=4+4)
JoinReader/reqOrdering=false/matchratio=onetoone/lookuprows=8192/mem=unlimited-16                      99.3k ± 0%      99.3k ± 0%      ~     (p=0.873 n=5+4)
JoinReader/reqOrdering=false/matchratio=onetoone/lookuprows=16384/mem=unlimited-16                      218k ± 0%       218k ± 0%      ~     (p=0.968 n=4+5)
JoinReader/reqOrdering=false/matchratio=onetoone/lookuprows=32768/mem=unlimited-16                      465k ± 0%       464k ± 0%      ~     (p=1.000 n=5+4)
JoinReader/reqOrdering=false/matchratio=onetoone/lookuprows=65536/mem=unlimited-16                      937k ± 0%       937k ± 0%      ~     (p=0.486 n=4+4)
JoinReader/reqOrdering=false/matchratio=onetoone/lookuprows=524288/mem=unlimited-16                    7.70M ± 0%      7.70M ± 0%      ~     (p=0.841 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetofour/lookuprows=1/mem=unlimited/parallel=true-16            121 ± 0%        121 ± 0%      ~     (all equal)
JoinReader/reqOrdering=false/matchratio=onetofour/lookuprows=1/mem=unlimited-16                          121 ± 0%        121 ± 0%      ~     (all equal)
JoinReader/reqOrdering=false/matchratio=onetofour/lookuprows=16/mem=unlimited-16                         331 ± 0%        330 ± 0%      ~     (p=0.333 n=5+4)
JoinReader/reqOrdering=false/matchratio=onetofour/lookuprows=256/mem=unlimited-16                      3.78k ± 0%      3.78k ± 0%      ~     (p=1.000 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetofour/lookuprows=1024/mem=unlimited-16                     14.6k ± 0%      14.6k ± 0%      ~     (p=0.397 n=4+5)
JoinReader/reqOrdering=false/matchratio=onetofour/lookuprows=4096/mem=unlimited-16                     62.8k ± 0%      62.9k ± 0%      ~     (p=0.397 n=4+5)
JoinReader/reqOrdering=false/matchratio=onetofour/lookuprows=8192/mem=unlimited-16                      145k ± 0%       145k ± 0%      ~     (p=0.460 n=4+5)
JoinReader/reqOrdering=false/matchratio=onetofour/lookuprows=16384/mem=unlimited-16                     369k ± 0%       369k ± 0%      ~     (p=0.686 n=4+4)
JoinReader/reqOrdering=false/matchratio=onetofour/lookuprows=32768/mem=unlimited-16                     854k ± 0%       854k ± 0%      ~     (p=0.086 n=4+4)
JoinReader/reqOrdering=false/matchratio=onetofour/lookuprows=65536/mem=unlimited-16                    1.76M ± 0%      1.89M ± 0%    +7.32%  (p=0.008 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetosixteen/lookuprows=1/mem=unlimited/parallel=true-16         124 ± 0%        123 ± 0%    -0.81%  (p=0.008 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetosixteen/lookuprows=1/mem=unlimited-16                       124 ± 0%        123 ± 0%    -0.81%  (p=0.008 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetosixteen/lookuprows=16/mem=unlimited-16                      378 ± 0%        377 ± 0%    -0.26%  (p=0.000 n=5+4)
JoinReader/reqOrdering=false/matchratio=onetosixteen/lookuprows=256/mem=unlimited-16                   4.55k ± 0%      4.55k ± 0%      ~     (p=0.171 n=4+4)
JoinReader/reqOrdering=false/matchratio=onetosixteen/lookuprows=1024/mem=unlimited-16                  18.9k ± 0%      18.9k ± 0%      ~     (p=0.952 n=4+5)
JoinReader/reqOrdering=false/matchratio=onetosixteen/lookuprows=4096/mem=unlimited-16                   105k ± 0%       105k ± 1%      ~     (p=0.690 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetosixteen/lookuprows=8192/mem=unlimited-16                   290k ± 0%       290k ± 0%      ~     (p=1.000 n=4+4)
JoinReader/reqOrdering=false/matchratio=onetosixteen/lookuprows=16384/mem=unlimited-16                  902k ± 0%       902k ± 0%      ~     (p=0.730 n=4+5)
JoinReader/reqOrdering=false/matchratio=onetosixteen/lookuprows=32768/mem=unlimited-16                 2.27M ± 0%      2.27M ± 0%      ~     (p=1.000 n=4+4)
JoinReader/reqOrdering=false/matchratio=onetothirtytwo/lookuprows=1/mem=unlimited/parallel=true-16       126 ± 0%        125 ± 0%    -0.79%  (p=0.008 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetothirtytwo/lookuprows=1/mem=unlimited-16                     126 ± 0%        125 ± 0%    -0.79%  (p=0.008 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetothirtytwo/lookuprows=16/mem=unlimited-16                    410 ± 0%        409 ± 0%      ~     (p=0.079 n=4+5)
JoinReader/reqOrdering=false/matchratio=onetothirtytwo/lookuprows=256/mem=unlimited-16                 5.06k ± 0%      5.06k ± 0%      ~     (p=0.587 n=5+4)
JoinReader/reqOrdering=false/matchratio=onetothirtytwo/lookuprows=1024/mem=unlimited-16                23.5k ± 0%      23.6k ± 1%      ~     (p=0.667 n=4+5)
JoinReader/reqOrdering=false/matchratio=onetothirtytwo/lookuprows=4096/mem=unlimited-16                 154k ± 0%       154k ± 0%      ~     (p=0.556 n=5+4)
JoinReader/reqOrdering=false/matchratio=onetothirtytwo/lookuprows=8192/mem=unlimited-16                 469k ± 0%       469k ± 0%      ~     (p=0.286 n=4+4)
JoinReader/reqOrdering=false/matchratio=onetothirtytwo/lookuprows=16384/mem=unlimited-16               1.58M ± 0%      1.58M ± 0%      ~     (p=0.460 n=4+5)
JoinReader/reqOrdering=false/matchratio=onetosixtyfour/lookuprows=1/mem=unlimited/parallel=true-16       127 ± 0%        126 ± 0%    -0.79%  (p=0.008 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetosixtyfour/lookuprows=1/mem=unlimited-16                     127 ± 0%        126 ± 0%    -0.79%  (p=0.008 n=5+5)
JoinReader/reqOrdering=false/matchratio=onetosixtyfour/lookuprows=16/mem=unlimited-16                    426 ± 0%        425 ± 0%    -0.23%  (p=0.000 n=5+4)
JoinReader/reqOrdering=false/matchratio=onetosixtyfour/lookuprows=256/mem=unlimited-16                 5.89k ± 0%      5.89k ± 0%    -0.07%  (p=0.032 n=5+4)
JoinReader/reqOrdering=false/matchratio=onetosixtyfour/lookuprows=1024/mem=unlimited-16                32.2k ± 0%      30.0k ± 0%    -6.71%  (p=0.029 n=4+4)
JoinReader/reqOrdering=false/matchratio=onetosixtyfour/lookuprows=4096/mem=unlimited-16                 288k ± 0%       240k ± 0%   -16.74%  (p=0.029 n=4+4)
JoinReader/reqOrdering=false/matchratio=onetosixtyfour/lookuprows=8192/mem=unlimited-16                 911k ± 0%       802k ± 0%   -12.04%  (p=0.016 n=4+5)

Copy link
Member

@yuzefovich yuzefovich left a comment

Choose a reason for hiding this comment

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

Very nice benchmarks! The code LGTM, but I'll defer to Alfonso to stamp it.

I'm just curious whether you ran them on gceworker (I see that there is some variation, maybe it is explained by randomness) and also whether you have ideas for why in a few cases the size of total memory allocations increased by about 2x (maybe because of cache overhead?).

Reviewed 4 of 5 files at r1.
Reviewable status: :shipit: complete! 0 of 0 LGTMs obtained (waiting on @asubiotto, @sumeerbhola, and @yuzefovich)


pkg/sql/rowcontainer/numbered_row_container.go, line 383 at r1 (raw file):

	}
	allAccesses := make([]int, numAccesses)
	claimedCount := 0

nit: you could restructure the code a bit to remove "claimed count" things with something like this:

...
if elem.accesses == nil {
  elem.accesses = allAccesses[:elem.numAccesses]
  allAccesses = allAccesses[elem.numAccesses:]
  elem.numAccesses = 0
}
...

We could take it one step further and remove the unsetting of numAccesses with

...
if elem.accesses == nil {
  elem.accesses = allAccesses[0:0:elem.numAccesses]
  allAccesses = allAccesses[elem.numAccesses:]
}
elem.accesses = append(elem.accesses, accessIdx)
accessIdx++
....

pkg/sql/rowcontainer/numbered_row_container_test.go, line 245 at r1 (raw file):

	// This memory budget allows for some caching, but typically cannot
	// cache all the rows.
	var memoryBudget int64

nit: combine this and the next line.


pkg/sql/rowcontainer/numbered_row_container_test.go, line 316 at r1 (raw file):

					continue
				}
				for i := 1; i < len(rows); i++ {

Why do we have a for loop here? I think len(rows) is always 2, so we will make only one iteration (unless skip is true).


pkg/sql/rowcontainer/numbered_row_container_test.go, line 371 at r1 (raw file):

func makeNumberedContainerUsingNRC(
	ctx context.Context,
	t require.TestingT,

This seems suspicious, how about s/require.TestingT/testing.TB/g?


pkg/sql/rowexec/joinreader_test.go, line 846 at r1 (raw file):

					if memoryLimit != math.MaxInt64 {
						if !reqOrdering {
							// Smaller memory limit is not relevant when there is no ordering

nit: missing period.


pkg/sql/rowexec/joinreader_test.go, line 852 at r1 (raw file):

						// The benchmark workloads are such that each right row never joins
						// with more than one left row. And the access pattern of right rows
						// accessed across all the left rows is monotonically incresing. So

s/incresing/increasing/g

Copy link
Contributor

@asubiotto asubiotto left a comment

Choose a reason for hiding this comment

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

I trust your judgement @yuzefovich . Did a skim and this LGTM

Reviewed 1 of 5 files at r1.
Reviewable status: :shipit: complete! 0 of 0 LGTMs obtained (waiting on @sumeerbhola)

@sumeerbhola sumeerbhola force-pushed the nrcmisc branch 2 times, most recently from 3364216 to df168ba Compare June 1, 2020 19:16
Copy link
Collaborator Author

@sumeerbhola sumeerbhola left a comment

Choose a reason for hiding this comment

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

I'm just curious whether you ran them on gceworker (I see that there is some variation, maybe it is explained by randomness)

No, it was on my laptop. Do we typically run on gceworker to reduce variation?

and also whether you have ideas for why in a few cases the size of total memory allocations increased by about 2x (maybe because of cache overhead?).

I looked into this -- the major ones were the map allocation, map element allocation and row copying. The last one allowed for two optimizations -- we can avoid copying when the row is not being added to the cache, and when it is being added due to an eviction the allocations can be reduced by reusing that evicted row. The latter optimization was in the indexed row container that I'd overlooked. These have all been applied and I've updated the commit text.

Memory allocation increases like

JoinReader/reqOrdering=true/matchratio=onetothirtytwo/lookuprows=256/mem=100KB-16                     3.13MB ± 0%     5.98MB ± 0%   +91.12%  (p=0.016 n=4+5)
JoinReader/reqOrdering=true/matchratio=onetothirtytwo/lookuprows=1024/mem=100KB-16                    12.2MB ± 3%     23.6MB ± 0%   +93.52%  (p=0.016 n=5+4)
JoinReader/reqOrdering=true/matchratio=onetothirtytwo/lookuprows=4096/mem=100KB-16                    48.0MB ± 0%     94.2MB ± 1%   +96.42%  (p=0.016 n=4+5)
JoinReader/reqOrdering=true/matchratio=onetothirtytwo/lookuprows=8192/mem=100KB-16                    95.8MB ± 0%    189.5MB ± 2%   +97.73%  (p=0.016 n=4+5)
JoinReader/reqOrdering=true/matchratio=onetothirtytwo/lookuprows=16384/mem=100KB-16                    193MB ± 0%      376MB ± 0%   +95.48%  (p=0.016 n=5+4)

have now become a decrease

JoinReader/reqOrdering=true/matchratio=onetothirtytwo/lookuprows=256/mem=100KB-16                     3.13MB ± 0%     2.89MB ± 2%   -7.71%  (p=0.016 n=4+5)
JoinReader/reqOrdering=true/matchratio=onetothirtytwo/lookuprows=1024/mem=100KB-16                    12.2MB ± 3%     10.1MB ± 0%  -16.86%  (p=0.016 n=5+4)
JoinReader/reqOrdering=true/matchratio=onetothirtytwo/lookuprows=4096/mem=100KB-16                    48.0MB ± 0%     39.4MB ± 3%  -17.93%  (p=0.016 n=4+5)
JoinReader/reqOrdering=true/matchratio=onetothirtytwo/lookuprows=8192/mem=100KB-16                    95.8MB ± 0%     77.5MB ± 0%  -19.07%  (p=0.029 n=4+4)
JoinReader/reqOrdering=true/matchratio=onetothirtytwo/lookuprows=16384/mem=100KB-16                    193MB ± 0%      157MB ± 2%  -18.53%  (p=0.008 n=5+5)

Reviewable status: :shipit: complete! 0 of 0 LGTMs obtained (waiting on @asubiotto and @yuzefovich)


pkg/sql/rowcontainer/numbered_row_container.go, line 383 at r1 (raw file):

Previously, yuzefovich wrote…

nit: you could restructure the code a bit to remove "claimed count" things with something like this:

...
if elem.accesses == nil {
  elem.accesses = allAccesses[:elem.numAccesses]
  allAccesses = allAccesses[elem.numAccesses:]
  elem.numAccesses = 0
}
...

We could take it one step further and remove the unsetting of numAccesses with

...
if elem.accesses == nil {
  elem.accesses = allAccesses[0:0:elem.numAccesses]
  allAccesses = allAccesses[elem.numAccesses:]
}
elem.accesses = append(elem.accesses, accessIdx)
accessIdx++
....
</blockquote></details>

Done
___
*[pkg/sql/rowcontainer/numbered_row_container_test.go, line 245 at r1](https://reviewable.io/reviews/cockroachdb/cockroach/49669#-M8Xr9UGDAXh492-rhar:-M8kzRDBECQ1xMP6tLCR:bb6un1j) ([raw file](https://github.com/cockroachdb/cockroach/blob/cd8a706edecdf55025eacffad74281801adce3b2/pkg/sql/rowcontainer/numbered_row_container_test.go#L245)):*
<details><summary><i>Previously, yuzefovich wrote…</i></summary><blockquote>

nit: combine this and the next line.
</blockquote></details>

Done
___
*[pkg/sql/rowcontainer/numbered_row_container_test.go, line 316 at r1](https://reviewable.io/reviews/cockroachdb/cockroach/49669#-M8Xrt_H4Hlh-SHx3ySv:-M8kzlwF048a3XV5XPxr:bb6un1j) ([raw file](https://github.com/cockroachdb/cockroach/blob/cd8a706edecdf55025eacffad74281801adce3b2/pkg/sql/rowcontainer/numbered_row_container_test.go#L316)):*
<details><summary><i>Previously, yuzefovich wrote…</i></summary><blockquote>

Why do we have a `for` loop here? I think `len(rows)` is always 2, so we will make only one iteration (unless `skip` is `true`).
</blockquote></details>

Done
___
*[pkg/sql/rowcontainer/numbered_row_container_test.go, line 371 at r1](https://reviewable.io/reviews/cockroachdb/cockroach/49669#-M8Xs99f7Wrk4NpjkN1Q:-M8l-17B3UWLeexmDSkI:b3grltl) ([raw file](https://github.com/cockroachdb/cockroach/blob/cd8a706edecdf55025eacffad74281801adce3b2/pkg/sql/rowcontainer/numbered_row_container_test.go#L371)):*
<details><summary><i>Previously, yuzefovich wrote…</i></summary><blockquote>

This seems suspicious, how about `s/require.TestingT/testing.TB/g`?
</blockquote></details>

Done (I didn't know about `testing.TB` -- still learning Go).
___
*[pkg/sql/rowexec/joinreader_test.go, line 846 at r1](https://reviewable.io/reviews/cockroachdb/cockroach/49669#-M8XslRM72ChNbNGaWcm:-M8l-Oak3kAmZkawBiLb:bb6un1j) ([raw file](https://github.com/cockroachdb/cockroach/blob/cd8a706edecdf55025eacffad74281801adce3b2/pkg/sql/rowexec/joinreader_test.go#L846)):*
<details><summary><i>Previously, yuzefovich wrote…</i></summary><blockquote>

nit: missing period.
</blockquote></details>

Done
___
*[pkg/sql/rowexec/joinreader_test.go, line 852 at r1](https://reviewable.io/reviews/cockroachdb/cockroach/49669#-M8XsuaA5X8qjxD0E95g:-M8l-Rex0J6qH5b9A4cr:bb6un1j) ([raw file](https://github.com/cockroachdb/cockroach/blob/cd8a706edecdf55025eacffad74281801adce3b2/pkg/sql/rowexec/joinreader_test.go#L852)):*
<details><summary><i>Previously, yuzefovich wrote…</i></summary><blockquote>

`s/incresing/increasing/g`
</blockquote></details>

Done


<!-- Sent from Reviewable.io -->

…ontainer

Additionally,
- added a randomized correctness test that compares the results of the indexed
  and numbered containers.
- added benchmark cases to the joinReader benchmark that limit memory. None of
  the workloads have repeated reads of the same right row and all access the
  right rows in monotonically increasing order so the difference between the
  two containers is due to the numbered container avoiding the overhead of
  populating the cache.
- reduced the number of allocations in newNumberedDiskRowIterator.
  - the accesses slices share the same underlying slice.
  - a row copy, when there is a miss and the row is not added to the cache, is
    eliminated. When a copy is needed and we have evicted a row from the cache,
    the copying reuses that evicted row.
  - allocations of the map, map elements are reused.

Fixes cockroachdb#48118

Release note: None
Copy link
Member

@yuzefovich yuzefovich left a comment

Choose a reason for hiding this comment

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

:lgtm:

Do we typically run on gceworker to reduce variation?

Yeah, at least Macs can have noticeable variation that skews the benchmarks. In this case, however, we do see an obvious performance improvement, and I don't think it's too important to get the exact numbers.

have now become a decrease

Awesome!

Reviewed 3 of 3 files at r2.
Reviewable status: :shipit: complete! 1 of 0 LGTMs obtained (waiting on @sumeerbhola)


pkg/sql/rowcontainer/numbered_row_container.go, line 413 at r2 (raw file):

			elem := n.cache[rowIdx]
			if elem.accesses == nil {
				// Sub-slice that can grow up to elem.numAccesses

nit: mission period.

@sumeerbhola
Copy link
Collaborator Author

bors r+

@craig
Copy link
Contributor

craig bot commented Jun 1, 2020

Build succeeded

@craig craig bot merged commit daf0418 into cockroachdb:master Jun 1, 2020
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.

rowexec: improve disk spilling in the lookup joiner
4 participants