Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Comments

Port Join operator to WorkProcessor model #1256

Merged
sopel39 merged 6 commits intotrinodb:masterfrom
Praveen2112:join_work_processor
Nov 3, 2019
Merged

Port Join operator to WorkProcessor model #1256
sopel39 merged 6 commits intotrinodb:masterfrom
Praveen2112:join_work_processor

Conversation

@Praveen2112
Copy link
Member

@Praveen2112 Praveen2112 commented Aug 5, 2019

TO-DO:

  • Track memory for the output pages

The benchmark that we took

                                                                                                                                                                 Normal                         Work Processor
Benchmark                                              (buildHashEnabled)  (buildRowsRepetition)  (hashColumns)  (matchRate)  (outputColumns)  Mode  Cnt     Score     Error  Units          Score     Error  Units
BenchmarkHashBuildAndJoinOperators.benchmarkBuildHash               false                      1        varchar          N/A              N/A  avgt   30   853.215 ±   5.996  ms/op       843.781 ±   7.716  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkBuildHash               false                      1         bigint          N/A              N/A  avgt   30   531.294 ±  49.266  ms/op       480.013 ±  11.462  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkBuildHash               false                      1            all          N/A              N/A  avgt   30  1314.879 ± 266.532  ms/op       955.585 ±  21.856  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkBuildHash               false                      5        varchar          N/A              N/A  avgt   30  1967.050 ± 113.097  ms/op      1170.089 ±  24.498  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkBuildHash               false                      5         bigint          N/A              N/A  avgt   30  1251.594 ± 190.671  ms/op       584.872 ±   4.955  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkBuildHash               false                      5            all          N/A              N/A  avgt   30  2322.659 ± 153.450  ms/op      1385.845 ±  15.290  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkBuildHash                true                      1        varchar          N/A              N/A  avgt   30  1137.780 ±  77.309  ms/op      1168.215 ± 110.874  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkBuildHash                true                      1         bigint          N/A              N/A  avgt   30  1098.345 ± 141.290  ms/op      1066.497 ± 112.083  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkBuildHash                true                      1            all          N/A              N/A  avgt   30  1437.359 ±  86.187  ms/op      1400.772 ±  86.195  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkBuildHash                true                      5        varchar          N/A              N/A  avgt   30  1801.792 ± 133.888  ms/op      1768.608 ± 122.690  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkBuildHash                true                      5         bigint          N/A              N/A  avgt   30  1274.933 ± 219.359  ms/op      1508.048 ± 232.207  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkBuildHash                true                      5            all          N/A              N/A  avgt   30  2133.180 ± 173.386  ms/op      2083.435 ± 156.605  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1        varchar          0.1           bigint  avgt   30   501.720 ±  40.658  ms/op       491.646 ±  38.148  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1        varchar          0.1              all  avgt   30   508.512 ±  37.853  ms/op       515.810 ±  38.215  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1        varchar            1           bigint  avgt   30   495.618 ±  31.399  ms/op       491.188 ±  36.070  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1        varchar            1              all  avgt   30   608.514 ±  34.263  ms/op       548.757 ±  36.449  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1        varchar            2           bigint  avgt   30   307.822 ±  22.860  ms/op       310.354 ±  24.534  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1        varchar            2              all  avgt   30   413.530 ±  27.973  ms/op       368.702 ±  29.651  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1         bigint          0.1           bigint  avgt   30   385.541 ±  31.138  ms/op       427.413 ±  42.924  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1         bigint          0.1              all  avgt   30   418.381 ±  33.469  ms/op       456.264 ±  46.562  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1         bigint            1           bigint  avgt   30   393.607 ±  28.436  ms/op       376.974 ±  29.006  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1         bigint            1              all  avgt   30   534.679 ±  32.480  ms/op       471.156 ±  35.624  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1         bigint            2           bigint  avgt   30   238.572 ±  16.595  ms/op       222.459 ±  15.790  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1         bigint            2              all  avgt   30   351.910 ±  25.507  ms/op       314.410 ±  23.851  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1            all          0.1           bigint  avgt   30   530.216 ±  45.057  ms/op       547.886 ±  42.634  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1            all          0.1              all  avgt   30   549.515 ±  42.296  ms/op       566.152 ±  47.411  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1            all            1           bigint  avgt   30   566.055 ±  44.590  ms/op       521.172 ±  32.902  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1            all            1              all  avgt   30   639.596 ±  38.572  ms/op       590.736 ±  41.050  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1            all            2           bigint  avgt   30   347.534 ±  28.444  ms/op       333.202 ±  24.433  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1            all            2              all  avgt   30   465.093 ±  33.190  ms/op       412.810 ±  29.516  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5        varchar          0.1           bigint  avgt   30   453.407 ±  35.255  ms/op       462.998 ±  41.880  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5        varchar          0.1              all  avgt   30   590.261 ±  48.365  ms/op       593.472 ±  46.046  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5        varchar            1           bigint  avgt   30   862.731 ±  64.805  ms/op       828.970 ±  39.277  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5        varchar            1              all  avgt   30  1382.688 ±  81.018  ms/op      1335.846 ±  69.668  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5        varchar            2           bigint  avgt   30   610.187 ±  54.426  ms/op       606.609 ±  42.457  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5        varchar            2              all  avgt   30  1212.495 ±  74.364  ms/op      1149.922 ±  69.049  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5         bigint          0.1           bigint  avgt   30   332.809 ±  31.834  ms/op       428.480 ±  35.487  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5         bigint          0.1              all  avgt   30   463.897 ±  37.050  ms/op       571.712 ±  42.395  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5         bigint            1           bigint  avgt   30   754.607 ±  42.370  ms/op       751.556 ±  48.769  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5         bigint            1              all  avgt   30  1312.524 ±  81.300  ms/op      1249.487 ±  74.263  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5         bigint            2           bigint  avgt   30   538.278 ±  31.206  ms/op       350.649 ±   2.183  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5         bigint            2              all  avgt   30  1125.858 ±  70.048  ms/op       735.775 ±  10.836  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5            all          0.1           bigint  avgt   30   498.699 ±  36.658  ms/op       320.271 ±   9.060  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5            all          0.1              all  avgt   30   614.061 ±  43.807  ms/op       400.066 ±   5.442  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5            all            1           bigint  avgt   30   948.549 ±  67.885  ms/op       576.193 ±  19.730  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5            all            1              all  avgt   30  1429.589 ±  74.592  ms/op       951.784 ±   5.846  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5            all            2           bigint  avgt   30   675.079 ±  49.582  ms/op       489.229 ±  60.943  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5            all            2              all  avgt   30  1236.805 ±  65.670  ms/op       782.930 ±   5.811  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1        varchar          0.1           bigint  avgt   30   353.206 ±  28.255  ms/op       208.393 ±   6.011  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1        varchar          0.1              all  avgt   30   385.564 ±  27.942  ms/op       314.950 ±  62.543  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1        varchar            1           bigint  avgt   30   430.317 ±  29.014  ms/op       425.125 ±  38.157  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1        varchar            1              all  avgt   30   559.318 ±  33.943  ms/op       500.482 ±  30.443  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1        varchar            2           bigint  avgt   30   278.476 ±  19.800  ms/op       268.309 ±  21.216  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1        varchar            2              all  avgt   30   379.907 ±  27.119  ms/op       336.251 ±  23.976  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1         bigint          0.1           bigint  avgt   30   338.865 ±  34.612  ms/op       341.070 ±  29.223  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1         bigint          0.1              all  avgt   30   378.213 ±  29.146  ms/op       375.125 ±  32.809  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1         bigint            1           bigint  avgt   30   383.541 ±  26.826  ms/op       366.838 ±  30.932  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1         bigint            1              all  avgt   30   536.607 ±  36.405  ms/op       478.893 ±  32.060  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1         bigint            2           bigint  avgt   30   239.812 ±  16.928  ms/op       227.144 ±  16.707  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1         bigint            2              all  avgt   30   362.953 ±  28.234  ms/op       312.567 ±  24.701  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1            all          0.1           bigint  avgt   30   456.443 ±  38.262  ms/op       478.295 ±  35.756  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1            all          0.1              all  avgt   30   451.874 ±  39.621  ms/op       459.029 ±  46.079  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1            all            1           bigint  avgt   30   496.606 ±  37.871  ms/op       407.739 ±  62.407  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1            all            1              all  avgt   30   617.664 ±  39.957  ms/op       344.157 ±   3.700  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1            all            2           bigint  avgt   30   309.336 ±  20.785  ms/op       190.537 ±   0.883  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1            all            2              all  avgt   30   420.864 ±  29.838  ms/op       330.008 ±  47.625  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5        varchar          0.1           bigint  avgt   30   324.342 ±  24.455  ms/op       333.935 ±  28.268  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5        varchar          0.1              all  avgt   30   453.015 ±  41.154  ms/op       474.684 ±  41.022  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5        varchar            1           bigint  avgt   30   798.051 ±  45.413  ms/op       785.330 ±  45.606  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5        varchar            1              all  avgt   30  1305.680 ±  75.774  ms/op      1276.600 ±  65.511  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5        varchar            2           bigint  avgt   30   592.777 ±  44.939  ms/op       574.000 ±  42.446  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5        varchar            2              all  avgt   30  1222.249 ±  75.990  ms/op      1140.042 ±  63.089  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5         bigint          0.1           bigint  avgt   30   316.400 ±  25.455  ms/op       357.719 ±  52.560  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5         bigint          0.1              all  avgt   30   454.575 ±  33.161  ms/op       502.640 ±  48.392  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5         bigint            1           bigint  avgt   30   755.437 ±  43.953  ms/op       719.082 ±  42.112  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5         bigint            1              all  avgt   30  1332.002 ±  81.092  ms/op      1270.086 ±  77.205  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5         bigint            2           bigint  avgt   30   531.291 ±  40.300  ms/op       518.361 ±  46.572  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5         bigint            2              all  avgt   30  1146.824 ±  62.395  ms/op      1093.630 ±  65.947  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5            all          0.1           bigint  avgt   30   463.740 ±  37.975  ms/op       461.982 ±  34.699  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5            all          0.1              all  avgt   30   536.401 ±  52.768  ms/op       578.423 ±  43.188  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5            all            1           bigint  avgt   30   866.933 ±  50.954  ms/op       857.101 ±  50.179  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5            all            1              all  avgt   30  1417.945 ± 100.627  ms/op      1327.941 ±  75.018  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5            all            2           bigint  avgt   30   667.043 ±  38.734  ms/op       614.397 ±  38.889  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5            all            2              all  avgt   30  1209.488 ±  66.812  ms/op      1154.332 ±  69.110  ms/op

@cla-bot cla-bot bot added the cla-signed label Aug 5, 2019
@Praveen2112 Praveen2112 added the WIP label Aug 5, 2019
@dain dain changed the title Port Join operator to WorkProcessor model [WIP] Port Join operator to WorkProcessor model Aug 5, 2019
Copy link
Member

Choose a reason for hiding this comment

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

I think we should start by adding support for additional info to io.prestosql.operator.WorkProcessorOperator.
Similarly for spill. Otherwise we would get regression feature wise.

@Praveen2112 Praveen2112 force-pushed the join_work_processor branch 4 times, most recently from 2f017e8 to 92216f4 Compare August 11, 2019 15:43
@sopel39
Copy link
Member

sopel39 commented Aug 19, 2019

Could you add support for operator info since #1292 landed

@Praveen2112
Copy link
Member Author

Sure will update it.

@Praveen2112 Praveen2112 force-pushed the join_work_processor branch 2 times, most recently from 2f504b8 to 3709b4d Compare August 21, 2019 10:11
Copy link
Member

Choose a reason for hiding this comment

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

I don't see reason why Optional.of(statisticsCounter) would fail here

@Praveen2112 Praveen2112 force-pushed the join_work_processor branch 2 times, most recently from 269017e to 51363e7 Compare August 22, 2019 08:16
Copy link
Member

Choose a reason for hiding this comment

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

it seems Session should be also part of ProcessorContext

Copy link
Member

Choose a reason for hiding this comment

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

+1

Copy link
Member

Choose a reason for hiding this comment

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

static import

Copy link
Member

Choose a reason for hiding this comment

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

ping

Copy link
Member

Choose a reason for hiding this comment

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

this. is not needed

Copy link
Member

Choose a reason for hiding this comment

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

just create counter here

Copy link
Member

Choose a reason for hiding this comment

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

static import TransformationState

Copy link
Member

Choose a reason for hiding this comment

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

What is the difference between JoinProcessor and JoinTransformation

Copy link
Member

Choose a reason for hiding this comment

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

I think you still want to update spillInProgress here and validate that previous spill not failed.
This method is different than the previous one.

Copy link
Member

Choose a reason for hiding this comment

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

this code this method originated from is quite complex. What if tryUnspillNext behaved as the old method, that is call restoreProbe? This way it would make it easier to be sure that nothing critical changed behind the scenes.

Copy link
Member

Choose a reason for hiding this comment

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

I think you also want tests in TestWorkProcessorPipelineQueries

@Praveen2112 Praveen2112 force-pushed the join_work_processor branch 5 times, most recently from 365c2af to 329006a Compare September 11, 2019 08:17
Copy link
Member

@sopel39 sopel39 left a comment

Choose a reason for hiding this comment

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

comments, remember to add tests to io.prestosql.tests.TestWorkProcessorPipelineQueries

Copy link
Member

Choose a reason for hiding this comment

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

session argument is redundant here

Copy link
Member

Choose a reason for hiding this comment

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

ditto

Copy link
Member

Choose a reason for hiding this comment

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

ping

Copy link
Member

Choose a reason for hiding this comment

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

Closeable seems redundant here

Copy link
Member

Choose a reason for hiding this comment

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

no need for this

Copy link
Member

Choose a reason for hiding this comment

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

extract result of isBlocked()

Copy link
Member

Choose a reason for hiding this comment

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

extract result of needsInput() if used more than once

Copy link
Member Author

Choose a reason for hiding this comment

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

but we can't re-use it as a same probe Page can give multiple pages in case of mxn joins, in that case we might need to reuse that same Page

Copy link
Member

Choose a reason for hiding this comment

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

if you called addInput(element); then you need to return needsMoreData here

Copy link
Member

Choose a reason for hiding this comment

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

add an extra boolean: boolean consumedInput and set it to true here

Copy link
Member

Choose a reason for hiding this comment

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

consumedInput should be set to true here. The page has been fully consumed after addInput call

Copy link
Member

Choose a reason for hiding this comment

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

return TransformationState.ofResult(outputPage, consumedInput);

@Praveen2112 Praveen2112 force-pushed the join_work_processor branch 2 times, most recently from 7685c43 to 6b538ad Compare September 23, 2019 06:59
Copy link
Member

Choose a reason for hiding this comment

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

consumedInput should be set to true here. The page has been fully consumed after addInput call

Copy link
Member

Choose a reason for hiding this comment

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

I think it should be:

public TransformationState<Page> process(@Nullable Page element) {
  if (element == null) {
    finish();
  }

  boolean isFinished = isFinished();
  if (isFinished()) {
    return finished();
  }

  ListenableFuture<?> blocked = isBlocked();
  if (!blocked.isDone()) {
    return blocked(blocked);
  }

  boolean consumedInput = false;
  if (needsInput()) {
    addInput(element);
    consumedInput = true;
  }

  Page outputPage = getOutput();
  if (outputPage != null) {
    return ofResult(outputPage, consumedInput && !isFinished());
  }

  if (consumedInput) {
    return needsMoreData();
  }

  return yield();
}

Copy link
Member

Choose a reason for hiding this comment

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

remove whitespace lineitem.partkey = part.partkey

@Praveen2112 Praveen2112 force-pushed the join_work_processor branch 4 times, most recently from 125d025 to 5776365 Compare September 27, 2019 11:59
Copy link
Member

Choose a reason for hiding this comment

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

move below benchmarkBuildHash and make it static

Copy link
Member

Choose a reason for hiding this comment

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

you miss the test for the other benchmark

Copy link
Member

Choose a reason for hiding this comment

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

ping, you still miss tests for other benchmark

@sopel39 sopel39 removed the WIP label Oct 11, 2019
Copy link
Member

@sopel39 sopel39 left a comment

Choose a reason for hiding this comment

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

Minor comments. I will run benchmarks and then if there are no regressions and objections from other people, I will merge it

Copy link
Member

Choose a reason for hiding this comment

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

don't use ? condition, but rather explicit if.

Making estimatedProbeBlockBytes 0 means we might produce too large pages when they are materialized.

Please add a check in io.prestosql.operator.LookupJoinPageBuilder#isFull that the number of positions do not exceed PageProcessor#MAX_BATCH_SIZE.

Please add a TODO that we should estimate probe block bytes for lazy pages too.

@sopel39 sopel39 changed the title [WIP] Port Join operator to WorkProcessor model Port Join operator to WorkProcessor model Oct 11, 2019
@Praveen2112 Praveen2112 force-pushed the join_work_processor branch 5 times, most recently from e62a1a7 to f89984a Compare October 12, 2019 15:44
Copy link
Member

Choose a reason for hiding this comment

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

ping, you still miss tests for other benchmark

Copy link
Member

Choose a reason for hiding this comment

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

will this release build side?

Copy link
Member Author

Choose a reason for hiding this comment

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

Nope, the lock is still retained by the LookupJoinOperatorFactory

Copy link
Member

Choose a reason for hiding this comment

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

run benchmarks twice here to make sure build side is not released

@Praveen2112 Praveen2112 force-pushed the join_work_processor branch 2 times, most recently from 290e3a0 to 17863d6 Compare October 14, 2019 11:23
Copy link
Member

Choose a reason for hiding this comment

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

nit: space after //

@sopel39
Copy link
Member

sopel39 commented Oct 16, 2019

My cross check benchmarks.

BEFORE
Benchmark                                              (buildHashEnabled)  (buildRowsRepetition)  (hashColumns)  (matchRate)  (outputColumns)  Mode  Cnt     Score    Error  Units
BenchmarkHashBuildAndJoinOperators.benchmarkBuildHash               false                      1        varchar          N/A              N/A  avgt   30   772.912 ± 17.507  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkBuildHash               false                      1         bigint          N/A              N/A  avgt   30   599.097 ±  7.977  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkBuildHash               false                      1            all          N/A              N/A  avgt   30   919.520 ± 16.951  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkBuildHash               false                      5        varchar          N/A              N/A  avgt   30  1189.149 ± 15.586  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkBuildHash               false                      5         bigint          N/A              N/A  avgt   30   963.000 ± 19.728  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkBuildHash               false                      5            all          N/A              N/A  avgt   30  1469.037 ± 29.790  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkBuildHash                true                      1        varchar          N/A              N/A  avgt   30   589.513 ± 10.992  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkBuildHash                true                      1         bigint          N/A              N/A  avgt   30   593.725 ± 16.187  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkBuildHash                true                      1            all          N/A              N/A  avgt   30   756.048 ±  9.447  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkBuildHash                true                      5        varchar          N/A              N/A  avgt   30  1098.474 ± 25.568  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkBuildHash                true                      5         bigint          N/A              N/A  avgt   30   937.327 ± 25.069  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkBuildHash                true                      5            all          N/A              N/A  avgt   30  1275.358 ± 27.665  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1        varchar          0.1           bigint  avgt   30   279.608 ±  7.899  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1        varchar          0.1              all  avgt   30   290.244 ±  7.535  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1        varchar            1           bigint  avgt   30   299.395 ±  3.219  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1        varchar            1              all  avgt   30   391.116 ±  6.416  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1        varchar            2           bigint  avgt   30   232.341 ±  5.677  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1        varchar            2              all  avgt   30   320.221 ±  3.875  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1         bigint          0.1           bigint  avgt   30   244.150 ±  5.529  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1         bigint          0.1              all  avgt   30   263.375 ± 12.851  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1         bigint            1           bigint  avgt   30   231.694 ±  6.450  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1         bigint            1              all  avgt   30   340.814 ±  4.839  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1         bigint            2           bigint  avgt   30   169.877 ±  3.451  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1         bigint            2              all  avgt   30   291.666 ±  2.015  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1            all          0.1           bigint  avgt   30   304.997 ±  5.323  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1            all          0.1              all  avgt   30   325.450 ± 11.985  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1            all            1           bigint  avgt   30   343.881 ±  4.730  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1            all            1              all  avgt   30   439.131 ±  5.431  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1            all            2           bigint  avgt   30   270.582 ±  7.432  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1            all            2              all  avgt   30   359.956 ±  3.180  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5        varchar          0.1           bigint  avgt   30   297.857 ±  3.700  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5        varchar          0.1              all  avgt   30   412.051 ±  3.122  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5        varchar            1           bigint  avgt   30   621.612 ± 10.255  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5        varchar            1              all  avgt   30  1131.548 ± 18.941  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5        varchar            2           bigint  avgt   30   529.287 ± 16.839  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5        varchar            2              all  avgt   30  1054.403 ± 16.351  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5         bigint          0.1           bigint  avgt   30   215.835 ±  0.988  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5         bigint          0.1              all  avgt   30   349.575 ±  4.510  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5         bigint            1           bigint  avgt   30   541.646 ± 12.641  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5         bigint            1              all  avgt   30  1094.250 ± 13.889  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5         bigint            2           bigint  avgt   30   473.873 ±  2.722  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5         bigint            2              all  avgt   30   998.368 ± 13.439  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5            all          0.1           bigint  avgt   30   321.826 ±  3.308  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5            all          0.1              all  avgt   30   431.876 ±  7.525  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5            all            1           bigint  avgt   30   664.797 ± 19.505  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5            all            1              all  avgt   30  1155.691 ± 18.261  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5            all            2           bigint  avgt   30   571.474 ±  7.998  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5            all            2              all  avgt   30  1060.077 ± 16.819  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1        varchar          0.1           bigint  avgt   30   201.476 ±  3.129  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1        varchar          0.1              all  avgt   30   208.981 ±  2.923  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1        varchar            1           bigint  avgt   30   269.131 ±  5.101  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1        varchar            1              all  avgt   30   362.766 ±  5.312  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1        varchar            2           bigint  avgt   30   205.341 ±  3.508  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1        varchar            2              all  avgt   30   299.217 ±  2.624  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1         bigint          0.1           bigint  avgt   30   184.861 ±  3.936  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1         bigint          0.1              all  avgt   30   215.597 ±  4.662  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1         bigint            1           bigint  avgt   30   236.406 ±  3.485  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1         bigint            1              all  avgt   30   345.485 ±  7.625  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1         bigint            2           bigint  avgt   30   175.598 ±  2.996  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1         bigint            2              all  avgt   30   298.822 ±  1.499  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1            all          0.1           bigint  avgt   30   244.783 ± 18.865  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1            all          0.1              all  avgt   30   264.736 ±  7.854  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1            all            1           bigint  avgt   30   331.802 ±  4.767  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1            all            1              all  avgt   30   407.144 ±  6.583  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1            all            2           bigint  avgt   30   241.139 ±  3.490  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1            all            2              all  avgt   30   336.196 ±  2.988  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5        varchar          0.1           bigint  avgt   30   222.213 ±  3.077  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5        varchar          0.1              all  avgt   30   339.723 ±  5.223  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5        varchar            1           bigint  avgt   30   594.820 ± 14.358  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5        varchar            1              all  avgt   30  1104.040 ± 13.630  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5        varchar            2           bigint  avgt   30   507.414 ± 11.642  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5        varchar            2              all  avgt   30   993.278 ±  9.684  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5         bigint          0.1           bigint  avgt   30   215.390 ±  3.191  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5         bigint          0.1              all  avgt   30   335.985 ±  1.667  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5         bigint            1           bigint  avgt   30   538.142 ± 11.598  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5         bigint            1              all  avgt   30  1097.312 ± 21.946  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5         bigint            2           bigint  avgt   30   446.214 ±  3.840  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5         bigint            2              all  avgt   30   997.632 ± 13.583  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5            all          0.1           bigint  avgt   30   282.484 ± 17.225  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5            all          0.1              all  avgt   30   402.091 ±  2.432  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5            all            1           bigint  avgt   30   633.086 ± 20.578  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5            all            1              all  avgt   30  1130.972 ± 14.219  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5            all            2           bigint  avgt   30   559.543 ±  2.982  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5            all            2              all  avgt   30  1038.818 ± 14.581  ms/op

AFTER
Benchmark                                              (buildHashEnabled)  (buildRowsRepetition)  (hashColumns)  (matchRate)  (outputColumns)  Mode  Cnt     Score    Error  Units
BenchmarkHashBuildAndJoinOperators.benchmarkBuildHash               false                      1        varchar          N/A              N/A  avgt   30   779.959 ± 17.032  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkBuildHash               false                      1         bigint          N/A              N/A  avgt   30   585.120 ± 14.536  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkBuildHash               false                      1            all          N/A              N/A  avgt   30   902.129 ± 21.895  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkBuildHash               false                      5        varchar          N/A              N/A  avgt   30  1166.988 ± 44.285  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkBuildHash               false                      5         bigint          N/A              N/A  avgt   30  1003.722 ± 17.016  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkBuildHash               false                      5            all          N/A              N/A  avgt   30  1428.198 ± 41.004  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkBuildHash                true                      1        varchar          N/A              N/A  avgt   30   584.140 ± 10.459  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkBuildHash                true                      1         bigint          N/A              N/A  avgt   30   581.254 ± 11.376  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkBuildHash                true                      1            all          N/A              N/A  avgt   30   765.561 ±  9.916  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkBuildHash                true                      5        varchar          N/A              N/A  avgt   30  1043.553 ± 13.414  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkBuildHash                true                      5         bigint          N/A              N/A  avgt   30   938.467 ± 20.738  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkBuildHash                true                      5            all          N/A              N/A  avgt   30  1259.402 ± 43.434  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1        varchar          0.1           bigint  avgt   30   275.365 ±  6.876  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1        varchar          0.1              all  avgt   30   286.175 ±  7.282  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1        varchar            1           bigint  avgt   30   274.388 ±  6.982  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1        varchar            1              all  avgt   30   354.059 ±  7.472  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1        varchar            2           bigint  avgt   30   216.005 ±  1.432  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1        varchar            2              all  avgt   30   281.464 ±  2.695  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1         bigint          0.1           bigint  avgt   30   189.976 ±  6.486  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1         bigint          0.1              all  avgt   30   272.066 ±  7.277  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1         bigint            1           bigint  avgt   30   228.318 ±  2.286  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1         bigint            1              all  avgt   30   307.474 ± 10.010  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1         bigint            2           bigint  avgt   30   162.113 ±  3.681  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1         bigint            2              all  avgt   30   252.427 ±  2.431  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1            all          0.1           bigint  avgt   30   297.655 ± 12.256  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1            all          0.1              all  avgt   30   322.922 ± 14.190  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1            all            1           bigint  avgt   30   333.688 ± 16.639  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1            all            1              all  avgt   30   405.478 ±  4.536  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1            all            2           bigint  avgt   30   250.344 ±  4.888  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1            all            2              all  avgt   30   319.504 ±  4.346  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5        varchar          0.1           bigint  avgt   30   305.417 ±  4.132  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5        varchar          0.1              all  avgt   30   414.095 ±  2.803  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5        varchar            1           bigint  avgt   30   620.097 ±  4.788  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5        varchar            1              all  avgt   30  1138.707 ± 25.922  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5        varchar            2           bigint  avgt   30   525.970 ±  5.257  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5        varchar            2              all  avgt   30   996.786 ± 23.210  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5         bigint          0.1           bigint  avgt   30   279.003 ±  4.158  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5         bigint          0.1              all  avgt   30   407.823 ±  1.655  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5         bigint            1           bigint  avgt   30   560.592 ±  8.556  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5         bigint            1              all  avgt   30  1067.206 ± 17.710  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5         bigint            2           bigint  avgt   30   469.143 ±  6.879  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5         bigint            2              all  avgt   30   965.296 ± 24.875  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5            all          0.1           bigint  avgt   30   338.694 ±  7.496  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5            all          0.1              all  avgt   30   431.755 ±  2.138  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5            all            1           bigint  avgt   30   669.564 ±  6.948  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5            all            1              all  avgt   30  1142.770 ± 18.890  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5            all            2           bigint  avgt   30   570.719 ±  6.126  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5            all            2              all  avgt   30  1036.653 ± 32.183  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1        varchar          0.1           bigint  avgt   30   195.105 ±  4.034  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1        varchar          0.1              all  avgt   30   221.716 ±  6.376  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1        varchar            1           bigint  avgt   30   259.070 ±  7.773  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1        varchar            1              all  avgt   30   324.231 ±  4.051  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1        varchar            2           bigint  avgt   30   196.217 ± 11.706  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1        varchar            2              all  avgt   30   262.637 ±  5.349  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1         bigint          0.1           bigint  avgt   30   176.390 ±  1.221  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1         bigint          0.1              all  avgt   30   219.669 ±  4.664  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1         bigint            1           bigint  avgt   30   232.569 ±  3.527  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1         bigint            1              all  avgt   30   303.528 ±  4.861  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1         bigint            2           bigint  avgt   30   167.870 ±  6.536  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1         bigint            2              all  avgt   30   257.462 ±  3.109  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1            all          0.1           bigint  avgt   30   209.805 ±  4.251  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1            all          0.1              all  avgt   30   252.133 ± 18.041  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1            all            1           bigint  avgt   30   323.669 ±  8.406  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1            all            1              all  avgt   30   368.778 ±  2.830  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1            all            2           bigint  avgt   30   233.623 ±  4.910  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1            all            2              all  avgt   30   297.243 ±  2.315  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5        varchar          0.1           bigint  avgt   30   281.668 ±  3.773  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5        varchar          0.1              all  avgt   30   391.692 ±  2.406  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5        varchar            1           bigint  avgt   30   584.964 ± 10.632  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5        varchar            1              all  avgt   30  1064.566 ± 15.707  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5        varchar            2           bigint  avgt   30   509.125 ±  4.620  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5        varchar            2              all  avgt   30   965.824 ± 17.174  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5         bigint          0.1           bigint  avgt   30   273.676 ±  3.197  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5         bigint          0.1              all  avgt   30   374.803 ± 20.614  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5         bigint            1           bigint  avgt   30   543.502 ±  8.955  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5         bigint            1              all  avgt   30  1084.485 ± 29.404  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5         bigint            2           bigint  avgt   30   470.019 ±  2.642  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5         bigint            2              all  avgt   30   977.519 ± 29.356  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5            all          0.1           bigint  avgt   30   304.981 ±  7.648  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5            all          0.1              all  avgt   30   404.594 ±  1.296  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5            all            1           bigint  avgt   30   626.077 ±  3.915  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5            all            1              all  avgt   30  1109.447 ± 15.695  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5            all            2           bigint  avgt   30   546.770 ±  4.542  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5            all            2              all  avgt   30  1009.137 ± 11.680  ms/op

@sopel39
Copy link
Member

sopel39 commented Oct 16, 2019

combined results:

Benchmark                                              (buildHashEnabled)  (buildRowsRepetition)  (hashColumns)  (matchRate)  (outputColumns)  Mode  Cnt     Score    Error  Units
Benchmark                                              (buildHashEnabled)  (buildRowsRepetition)  (hashColumns)  (matchRate)  (outputColumns)  Mode  Cnt     Score    Error  Units
BenchmarkHashBuildAndJoinOperators.benchmarkBuildHash               false                      1        varchar          N/A              N/A  avgt   30   772.912 ± 17.507  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkBuildHash               false                      1        varchar          N/A              N/A  avgt   30   779.959 ± 17.032  ms/op

BenchmarkHashBuildAndJoinOperators.benchmarkBuildHash               false                      1         bigint          N/A              N/A  avgt   30   599.097 ±  7.977  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkBuildHash               false                      1         bigint          N/A              N/A  avgt   30   585.120 ± 14.536  ms/op

BenchmarkHashBuildAndJoinOperators.benchmarkBuildHash               false                      1            all          N/A              N/A  avgt   30   919.520 ± 16.951  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkBuildHash               false                      1            all          N/A              N/A  avgt   30   902.129 ± 21.895  ms/op

BenchmarkHashBuildAndJoinOperators.benchmarkBuildHash               false                      5        varchar          N/A              N/A  avgt   30  1189.149 ± 15.586  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkBuildHash               false                      5        varchar          N/A              N/A  avgt   30  1166.988 ± 44.285  ms/op

BenchmarkHashBuildAndJoinOperators.benchmarkBuildHash               false                      5         bigint          N/A              N/A  avgt   30   963.000 ± 19.728  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkBuildHash               false                      5         bigint          N/A              N/A  avgt   30  1003.722 ± 17.016  ms/op

BenchmarkHashBuildAndJoinOperators.benchmarkBuildHash               false                      5            all          N/A              N/A  avgt   30  1469.037 ± 29.790  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkBuildHash               false                      5            all          N/A              N/A  avgt   30  1428.198 ± 41.004  ms/op

BenchmarkHashBuildAndJoinOperators.benchmarkBuildHash                true                      1        varchar          N/A              N/A  avgt   30   589.513 ± 10.992  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkBuildHash                true                      1        varchar          N/A              N/A  avgt   30   584.140 ± 10.459  ms/op

BenchmarkHashBuildAndJoinOperators.benchmarkBuildHash                true                      1         bigint          N/A              N/A  avgt   30   593.725 ± 16.187  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkBuildHash                true                      1         bigint          N/A              N/A  avgt   30   581.254 ± 11.376  ms/op

BenchmarkHashBuildAndJoinOperators.benchmarkBuildHash                true                      1            all          N/A              N/A  avgt   30   756.048 ±  9.447  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkBuildHash                true                      1            all          N/A              N/A  avgt   30   765.561 ±  9.916  ms/op

BenchmarkHashBuildAndJoinOperators.benchmarkBuildHash                true                      5        varchar          N/A              N/A  avgt   30  1098.474 ± 25.568  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkBuildHash                true                      5        varchar          N/A              N/A  avgt   30  1043.553 ± 13.414  ms/op

BenchmarkHashBuildAndJoinOperators.benchmarkBuildHash                true                      5         bigint          N/A              N/A  avgt   30   937.327 ± 25.069  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkBuildHash                true                      5         bigint          N/A              N/A  avgt   30   938.467 ± 20.738  ms/op

BenchmarkHashBuildAndJoinOperators.benchmarkBuildHash                true                      5            all          N/A              N/A  avgt   30  1275.358 ± 27.665  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkBuildHash                true                      5            all          N/A              N/A  avgt   30  1259.402 ± 43.434  ms/op

BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1        varchar          0.1           bigint  avgt   30   279.608 ±  7.899  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1        varchar          0.1           bigint  avgt   30   275.365 ±  6.876  ms/op

BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1        varchar          0.1              all  avgt   30   290.244 ±  7.535  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1        varchar          0.1              all  avgt   30   286.175 ±  7.282  ms/op

BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1        varchar            1           bigint  avgt   30   299.395 ±  3.219  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1        varchar            1           bigint  avgt   30   274.388 ±  6.982  ms/op

BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1        varchar            1              all  avgt   30   391.116 ±  6.416  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1        varchar            1              all  avgt   30   354.059 ±  7.472  ms/op

BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1        varchar            2           bigint  avgt   30   232.341 ±  5.677  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1        varchar            2           bigint  avgt   30   216.005 ±  1.432  ms/op

BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1        varchar            2              all  avgt   30   320.221 ±  3.875  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1        varchar            2              all  avgt   30   281.464 ±  2.695  ms/op

BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1         bigint          0.1           bigint  avgt   30   244.150 ±  5.529  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1         bigint          0.1           bigint  avgt   30   189.976 ±  6.486  ms/op

BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1         bigint          0.1              all  avgt   30   263.375 ± 12.851  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1         bigint          0.1              all  avgt   30   272.066 ±  7.277  ms/op

BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1         bigint            1           bigint  avgt   30   231.694 ±  6.450  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1         bigint            1           bigint  avgt   30   228.318 ±  2.286  ms/op

BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1         bigint            1              all  avgt   30   340.814 ±  4.839  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1         bigint            1              all  avgt   30   307.474 ± 10.010  ms/op

BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1         bigint            2           bigint  avgt   30   169.877 ±  3.451  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1         bigint            2           bigint  avgt   30   162.113 ±  3.681  ms/op

BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1         bigint            2              all  avgt   30   291.666 ±  2.015  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1         bigint            2              all  avgt   30   252.427 ±  2.431  ms/op

BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1            all          0.1           bigint  avgt   30   304.997 ±  5.323  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1            all          0.1           bigint  avgt   30   297.655 ± 12.256  ms/op

BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1            all          0.1              all  avgt   30   325.450 ± 11.985  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1            all          0.1              all  avgt   30   322.922 ± 14.190  ms/op

BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1            all            1           bigint  avgt   30   343.881 ±  4.730  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1            all            1           bigint  avgt   30   333.688 ± 16.639  ms/op

BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1            all            1              all  avgt   30   439.131 ±  5.431  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1            all            1              all  avgt   30   405.478 ±  4.536  ms/op

BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1            all            2           bigint  avgt   30   270.582 ±  7.432  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1            all            2           bigint  avgt   30   250.344 ±  4.888  ms/op

BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1            all            2              all  avgt   30   359.956 ±  3.180  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1            all            2              all  avgt   30   319.504 ±  4.346  ms/op

BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5        varchar          0.1           bigint  avgt   30   297.857 ±  3.700  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5        varchar          0.1           bigint  avgt   30   305.417 ±  4.132  ms/op

BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5        varchar          0.1              all  avgt   30   412.051 ±  3.122  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5        varchar          0.1              all  avgt   30   414.095 ±  2.803  ms/op

BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5        varchar            1           bigint  avgt   30   621.612 ± 10.255  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5        varchar            1           bigint  avgt   30   620.097 ±  4.788  ms/op

BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5        varchar            1              all  avgt   30  1131.548 ± 18.941  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5        varchar            1              all  avgt   30  1138.707 ± 25.922  ms/op

BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5        varchar            2           bigint  avgt   30   529.287 ± 16.839  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5        varchar            2           bigint  avgt   30   525.970 ±  5.257  ms/op

BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5        varchar            2              all  avgt   30  1054.403 ± 16.351  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5        varchar            2              all  avgt   30   996.786 ± 23.210  ms/op

BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5         bigint          0.1           bigint  avgt   30   215.835 ±  0.988  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5         bigint          0.1           bigint  avgt   30   279.003 ±  4.158  ms/op

BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5         bigint          0.1              all  avgt   30   349.575 ±  4.510  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5         bigint          0.1              all  avgt   30   407.823 ±  1.655  ms/op

BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5         bigint            1           bigint  avgt   30   541.646 ± 12.641  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5         bigint            1           bigint  avgt   30   560.592 ±  8.556  ms/op

BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5         bigint            1              all  avgt   30  1094.250 ± 13.889  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5         bigint            1              all  avgt   30  1067.206 ± 17.710  ms/op

BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5         bigint            2           bigint  avgt   30   473.873 ±  2.722  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5         bigint            2           bigint  avgt   30   469.143 ±  6.879  ms/op

BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5         bigint            2              all  avgt   30   998.368 ± 13.439  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5         bigint            2              all  avgt   30   965.296 ± 24.875  ms/op

BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5            all          0.1           bigint  avgt   30   321.826 ±  3.308  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5            all          0.1           bigint  avgt   30   338.694 ±  7.496  ms/op

BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5            all          0.1              all  avgt   30   431.876 ±  7.525  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5            all          0.1              all  avgt   30   431.755 ±  2.138  ms/op

BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5            all            1           bigint  avgt   30   664.797 ± 19.505  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5            all            1           bigint  avgt   30   669.564 ±  6.948  ms/op

BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5            all            1              all  avgt   30  1155.691 ± 18.261  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5            all            1              all  avgt   30  1142.770 ± 18.890  ms/op

BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5            all            2           bigint  avgt   30   571.474 ±  7.998  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5            all            2           bigint  avgt   30   570.719 ±  6.126  ms/op

BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5            all            2              all  avgt   30  1060.077 ± 16.819  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5            all            2              all  avgt   30  1036.653 ± 32.183  ms/op

BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1        varchar          0.1           bigint  avgt   30   201.476 ±  3.129  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1        varchar          0.1           bigint  avgt   30   195.105 ±  4.034  ms/op

BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1        varchar          0.1              all  avgt   30   208.981 ±  2.923  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1        varchar          0.1              all  avgt   30   221.716 ±  6.376  ms/op

BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1        varchar            1           bigint  avgt   30   269.131 ±  5.101  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1        varchar            1           bigint  avgt   30   259.070 ±  7.773  ms/op

BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1        varchar            1              all  avgt   30   362.766 ±  5.312  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1        varchar            1              all  avgt   30   324.231 ±  4.051  ms/op

BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1        varchar            2           bigint  avgt   30   205.341 ±  3.508  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1        varchar            2           bigint  avgt   30   196.217 ± 11.706  ms/op

BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1        varchar            2              all  avgt   30   299.217 ±  2.624  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1        varchar            2              all  avgt   30   262.637 ±  5.349  ms/op

BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1         bigint          0.1           bigint  avgt   30   184.861 ±  3.936  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1         bigint          0.1           bigint  avgt   30   176.390 ±  1.221  ms/op

BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1         bigint          0.1              all  avgt   30   215.597 ±  4.662  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1         bigint          0.1              all  avgt   30   219.669 ±  4.664  ms/op

BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1         bigint            1           bigint  avgt   30   236.406 ±  3.485  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1         bigint            1           bigint  avgt   30   232.569 ±  3.527  ms/op

BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1         bigint            1              all  avgt   30   345.485 ±  7.625  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1         bigint            1              all  avgt   30   303.528 ±  4.861  ms/op

BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1         bigint            2           bigint  avgt   30   175.598 ±  2.996  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1         bigint            2           bigint  avgt   30   167.870 ±  6.536  ms/op

BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1         bigint            2              all  avgt   30   298.822 ±  1.499  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1         bigint            2              all  avgt   30   257.462 ±  3.109  ms/op

BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1            all          0.1           bigint  avgt   30   244.783 ± 18.865  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1            all          0.1           bigint  avgt   30   209.805 ±  4.251  ms/op

BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1            all          0.1              all  avgt   30   264.736 ±  7.854  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1            all          0.1              all  avgt   30   252.133 ± 18.041  ms/op

BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1            all            1           bigint  avgt   30   331.802 ±  4.767  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1            all            1           bigint  avgt   30   323.669 ±  8.406  ms/op

BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1            all            1              all  avgt   30   407.144 ±  6.583  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1            all            1              all  avgt   30   368.778 ±  2.830  ms/op

BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1            all            2           bigint  avgt   30   241.139 ±  3.490  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1            all            2           bigint  avgt   30   233.623 ±  4.910  ms/op

BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1            all            2              all  avgt   30   336.196 ±  2.988  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1            all            2              all  avgt   30   297.243 ±  2.315  ms/op

BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5        varchar          0.1           bigint  avgt   30   222.213 ±  3.077  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5        varchar          0.1           bigint  avgt   30   281.668 ±  3.773  ms/op

BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5        varchar          0.1              all  avgt   30   339.723 ±  5.223  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5        varchar          0.1              all  avgt   30   391.692 ±  2.406  ms/op

BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5        varchar            1           bigint  avgt   30   594.820 ± 14.358  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5        varchar            1           bigint  avgt   30   584.964 ± 10.632  ms/op

BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5        varchar            1              all  avgt   30  1104.040 ± 13.630  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5        varchar            1              all  avgt   30  1064.566 ± 15.707  ms/op

BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5        varchar            2           bigint  avgt   30   507.414 ± 11.642  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5        varchar            2           bigint  avgt   30   509.125 ±  4.620  ms/op

BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5        varchar            2              all  avgt   30   993.278 ±  9.684  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5        varchar            2              all  avgt   30   965.824 ± 17.174  ms/op

BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5         bigint          0.1           bigint  avgt   30   215.390 ±  3.191  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5         bigint          0.1           bigint  avgt   30   273.676 ±  3.197  ms/op

BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5         bigint          0.1              all  avgt   30   335.985 ±  1.667  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5         bigint          0.1              all  avgt   30   374.803 ± 20.614  ms/op

BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5         bigint            1           bigint  avgt   30   538.142 ± 11.598  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5         bigint            1           bigint  avgt   30   543.502 ±  8.955  ms/op

BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5         bigint            1              all  avgt   30  1097.312 ± 21.946  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5         bigint            1              all  avgt   30  1084.485 ± 29.404  ms/op

BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5         bigint            2           bigint  avgt   30   446.214 ±  3.840  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5         bigint            2           bigint  avgt   30   470.019 ±  2.642  ms/op

BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5         bigint            2              all  avgt   30   997.632 ± 13.583  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5         bigint            2              all  avgt   30   977.519 ± 29.356  ms/op

BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5            all          0.1           bigint  avgt   30   282.484 ± 17.225  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5            all          0.1           bigint  avgt   30   304.981 ±  7.648  ms/op

BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5            all          0.1              all  avgt   30   402.091 ±  2.432  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5            all          0.1              all  avgt   30   404.594 ±  1.296  ms/op

BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5            all            1           bigint  avgt   30   633.086 ± 20.578  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5            all            1           bigint  avgt   30   626.077 ±  3.915  ms/op

BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5            all            1              all  avgt   30  1130.972 ± 14.219  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5            all            1              all  avgt   30  1109.447 ± 15.695  ms/op

BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5            all            2           bigint  avgt   30   559.543 ±  2.982  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5            all            2           bigint  avgt   30   546.770 ±  4.542  ms/op

BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5            all            2              all  avgt   30  1038.818 ± 14.581  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5            all            2              all  avgt   30  1009.137 ± 11.680  ms/op

@sopel39
Copy link
Member

sopel39 commented Nov 3, 2019

Another benchmark (BEFORE/AFTER):

Benchmark                                              (buildHashEnabled)  (buildRowsRepetition)  (hashColumns)  (matchRate)  (outputColumns)  Mode  Cnt     Score    Error  Units
Benchmark                                              (buildHashEnabled)  (buildRowsRepetition)  (hashColumns)  (matchRate)  (outputColumns)  Mode  Cnt     Score    Error  Units
BenchmarkHashBuildAndJoinOperators.benchmarkBuildHash               false                      1        varchar          N/A              N/A  avgt   30   775,088 ± 11,246  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkBuildHash               false                      1        varchar          N/A              N/A  avgt   30   778,752 ± 11,556  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkBuildHash               false                      1         bigint          N/A              N/A  avgt   30   319,673 ±  4,604  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkBuildHash               false                      1         bigint          N/A              N/A  avgt   30   318,656 ±  3,061  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkBuildHash               false                      1            all          N/A              N/A  avgt   30   958,101 ± 12,063  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkBuildHash               false                      1            all          N/A              N/A  avgt   30   952,477 ± 12,020  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkBuildHash               false                      5        varchar          N/A              N/A  avgt   30  1135,629 ± 29,153  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkBuildHash               false                      5        varchar          N/A              N/A  avgt   30  1133,204 ± 29,956  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkBuildHash               false                      5         bigint          N/A              N/A  avgt   30   523,185 ± 15,605  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkBuildHash               false                      5         bigint          N/A              N/A  avgt   30   513,989 ± 14,238  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkBuildHash               false                      5            all          N/A              N/A  avgt   30  1469,615 ± 35,750  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkBuildHash               false                      5            all          N/A              N/A  avgt   30  1447,100 ± 30,167  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkBuildHash                true                      1        varchar          N/A              N/A  avgt   30   540,975 ± 54,845  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkBuildHash                true                      1        varchar          N/A              N/A  avgt   30   651,537 ±  8,227  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkBuildHash                true                      1         bigint          N/A              N/A  avgt   30   515,203 ± 19,578  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkBuildHash                true                      1         bigint          N/A              N/A  avgt   30   519,523 ± 25,638  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkBuildHash                true                      1            all          N/A              N/A  avgt   30   739,457 ± 11,195  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkBuildHash                true                      1            all          N/A              N/A  avgt   30   739,371 ± 11,293  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkBuildHash                true                      5        varchar          N/A              N/A  avgt   30  1021,465 ± 30,109  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkBuildHash                true                      5        varchar          N/A              N/A  avgt   30  1025,891 ± 21,010  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkBuildHash                true                      5         bigint          N/A              N/A  avgt   30   533,712 ± 24,466  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkBuildHash                true                      5         bigint          N/A              N/A  avgt   30   533,629 ± 33,959  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkBuildHash                true                      5            all          N/A              N/A  avgt   30  1290,991 ± 25,749  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkBuildHash                true                      5            all          N/A              N/A  avgt   30  1298,195 ± 22,744  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1        varchar          0.1           bigint  avgt   30   285,838 ±  3,906  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1        varchar          0.1           bigint  avgt   30   282,352 ±  4,648  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1        varchar          0.1              all  avgt   30   298,492 ±  3,594  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1        varchar          0.1              all  avgt   30   298,154 ±  2,542  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1        varchar            1           bigint  avgt   30   306,274 ±  6,318  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1        varchar            1           bigint  avgt   30   299,763 ±  3,544  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1        varchar            1              all  avgt   30   382,775 ±  6,425  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1        varchar            1              all  avgt   30   349,728 ±  6,835  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1        varchar            2           bigint  avgt   30   237,435 ±  4,024  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1        varchar            2           bigint  avgt   30   222,714 ±  4,441  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1        varchar            2              all  avgt   30   308,047 ±  2,613  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1        varchar            2              all  avgt   30   277,366 ±  3,231  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1         bigint          0.1           bigint  avgt   30   242,247 ± 13,992  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1         bigint          0.1           bigint  avgt   30   210,778 ±  2,691  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1         bigint          0.1              all  avgt   30   280,270 ±  2,336  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1         bigint          0.1              all  avgt   30   282,450 ±  2,461  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1         bigint            1           bigint  avgt   30   244,340 ±  3,747  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1         bigint            1           bigint  avgt   30   233,397 ±  3,935  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1         bigint            1              all  avgt   30   341,060 ±  7,895  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1         bigint            1              all  avgt   30   312,112 ±  6,605  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1         bigint            2           bigint  avgt   30   173,864 ±  2,826  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1         bigint            2           bigint  avgt   30   157,579 ±  1,951  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1         bigint            2              all  avgt   30   272,718 ±  2,216  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1         bigint            2              all  avgt   30   241,623 ±  3,738  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1            all          0.1           bigint  avgt   30   318,797 ±  5,824  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1            all          0.1           bigint  avgt   30   309,030 ±  4,557  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1            all          0.1              all  avgt   30   332,687 ±  6,536  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1            all          0.1              all  avgt   30   322,826 ±  5,642  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1            all            1           bigint  avgt   30   364,094 ± 13,642  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1            all            1           bigint  avgt   30   356,510 ±  9,231  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1            all            1              all  avgt   30   429,951 ±  5,070  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1            all            1              all  avgt   30   389,303 ±  7,458  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1            all            2           bigint  avgt   30   299,241 ±  4,171  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1            all            2           bigint  avgt   30   285,141 ±  2,764  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1            all            2              all  avgt   30   353,991 ±  3,171  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      1            all            2              all  avgt   30   324,716 ±  2,483  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5        varchar          0.1           bigint  avgt   30   281,484 ±  3,369  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5        varchar          0.1           bigint  avgt   30   285,461 ±  2,590  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5        varchar          0.1              all  avgt   30   381,041 ±  3,651  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5        varchar          0.1              all  avgt   30   386,993 ±  3,851  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5        varchar            1           bigint  avgt   30   590,417 ±  8,302  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5        varchar            1           bigint  avgt   30   576,006 ± 10,583  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5        varchar            1              all  avgt   30  1006,198 ±  8,501  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5        varchar            1              all  avgt   30   960,014 ±  7,123  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5        varchar            2           bigint  avgt   30   501,876 ±  5,089  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5        varchar            2           bigint  avgt   30   489,950 ±  3,194  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5        varchar            2              all  avgt   30   886,486 ±  5,547  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5        varchar            2              all  avgt   30   853,387 ±  7,071  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5         bigint          0.1           bigint  avgt   30   229,227 ±  3,315  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5         bigint          0.1           bigint  avgt   30   264,318 ±  2,306  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5         bigint          0.1              all  avgt   30   358,262 ±  2,188  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5         bigint          0.1              all  avgt   30   373,528 ±  3,082  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5         bigint            1           bigint  avgt   30   532,593 ±  4,082  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5         bigint            1           bigint  avgt   30   527,750 ±  4,732  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5         bigint            1              all  avgt   30   973,088 ± 13,554  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5         bigint            1              all  avgt   30   912,681 ±  4,135  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5         bigint            2           bigint  avgt   30   442,259 ±  2,922  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5         bigint            2           bigint  avgt   30   432,106 ±  9,195  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5         bigint            2              all  avgt   30   855,770 ±  9,196  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5         bigint            2              all  avgt   30   808,567 ±  7,144  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5            all          0.1           bigint  avgt   30   316,610 ±  7,932  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5            all          0.1           bigint  avgt   30   317,630 ±  7,754  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5            all          0.1              all  avgt   30   403,569 ±  5,921  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5            all          0.1              all  avgt   30   415,654 ±  7,778  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5            all            1           bigint  avgt   30   651,919 ±  4,360  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5            all            1           bigint  avgt   30   630,170 ± 11,806  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5            all            1              all  avgt   30  1048,479 ±  6,007  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5            all            1              all  avgt   30  1039,414 ± 25,611  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5            all            2           bigint  avgt   30   559,261 ±  6,061  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5            all            2           bigint  avgt   30   532,941 ±  4,342  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5            all            2              all  avgt   30   947,737 ±  7,179  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                false                      5            all            2              all  avgt   30   908,758 ±  7,916  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1        varchar          0.1           bigint  avgt   30   204,606 ±  2,136  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1        varchar          0.1           bigint  avgt   30   203,480 ±  2,025  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1        varchar          0.1              all  avgt   30   237,077 ±  3,218  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1        varchar          0.1              all  avgt   30   253,187 ±  2,546  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1        varchar            1           bigint  avgt   30   269,430 ±  3,628  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1        varchar            1           bigint  avgt   30   268,287 ±  3,619  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1        varchar            1              all  avgt   30   349,054 ±  5,099  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1        varchar            1              all  avgt   30   314,551 ±  5,373  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1        varchar            2           bigint  avgt   30   208,569 ±  5,552  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1        varchar            2           bigint  avgt   30   208,252 ±  2,374  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1        varchar            2              all  avgt   30   289,056 ±  1,613  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1        varchar            2              all  avgt   30   258,739 ±  4,141  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1         bigint          0.1           bigint  avgt   30   201,705 ±  5,301  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1         bigint          0.1           bigint  avgt   30   192,405 ±  2,561  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1         bigint          0.1              all  avgt   30   231,570 ±  2,560  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1         bigint          0.1              all  avgt   30   226,237 ±  7,933  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1         bigint            1           bigint  avgt   30   235,666 ±  7,441  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1         bigint            1           bigint  avgt   30   226,726 ±  8,495  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1         bigint            1              all  avgt   30   326,509 ±  5,528  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1         bigint            1              all  avgt   30   307,907 ±  9,876  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1         bigint            2           bigint  avgt   30   175,346 ±  4,479  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1         bigint            2           bigint  avgt   30   165,151 ±  2,835  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1         bigint            2              all  avgt   30   285,073 ±  2,514  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1         bigint            2              all  avgt   30   248,266 ±  3,644  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1            all          0.1           bigint  avgt   30   271,004 ±  2,855  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1            all          0.1           bigint  avgt   30   232,229 ±  2,246  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1            all          0.1              all  avgt   30   265,449 ± 11,028  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1            all          0.1              all  avgt   30   276,481 ±  2,781  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1            all            1           bigint  avgt   30   327,112 ± 10,909  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1            all            1           bigint  avgt   30   315,413 ±  3,326  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1            all            1              all  avgt   30   396,474 ±  6,750  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1            all            1              all  avgt   30   366,945 ±  6,820  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1            all            2           bigint  avgt   30   254,574 ±  2,212  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1            all            2           bigint  avgt   30   235,259 ±  4,939  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1            all            2              all  avgt   30   331,526 ±  3,608  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      1            all            2              all  avgt   30   301,212 ±  3,748  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5        varchar          0.1           bigint  avgt   30   207,867 ±  2,516  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5        varchar          0.1           bigint  avgt   30   234,445 ±  1,426  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5        varchar          0.1              all  avgt   30   308,189 ±  3,439  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5        varchar          0.1              all  avgt   30   333,170 ± 14,779  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5        varchar            1           bigint  avgt   30   557,097 ± 14,885  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5        varchar            1           bigint  avgt   30   557,714 ±  4,788  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5        varchar            1              all  avgt   30   965,970 ±  5,492  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5        varchar            1              all  avgt   30   940,279 ±  8,141  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5        varchar            2           bigint  avgt   30   488,166 ±  3,083  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5        varchar            2           bigint  avgt   30   471,533 ±  3,243  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5        varchar            2              all  avgt   30   880,628 ±  9,075  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5        varchar            2              all  avgt   30   841,965 ±  6,438  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5         bigint          0.1           bigint  avgt   30   203,501 ±  1,587  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5         bigint          0.1           bigint  avgt   30   211,772 ±  1,755  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5         bigint          0.1              all  avgt   30   309,830 ±  2,914  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5         bigint          0.1              all  avgt   30   339,676 ± 17,826  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5         bigint            1           bigint  avgt   30   512,408 ±  9,757  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5         bigint            1           bigint  avgt   30   500,709 ±  7,611  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5         bigint            1              all  avgt   30   951,093 ±  7,115  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5         bigint            1              all  avgt   30   924,699 ±  8,256  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5         bigint            2           bigint  avgt   30   441,216 ±  2,224  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5         bigint            2           bigint  avgt   30   435,360 ±  2,749  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5         bigint            2              all  avgt   30   876,378 ± 10,660  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5         bigint            2              all  avgt   30   853,102 ± 27,204  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5            all          0.1           bigint  avgt   30   283,998 ±  1,492  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5            all          0.1           bigint  avgt   30   294,343 ±  4,279  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5            all          0.1              all  avgt   30   369,266 ±  2,549  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5            all          0.1              all  avgt   30   380,630 ±  1,939  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5            all            1           bigint  avgt   30   614,012 ± 13,331  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5            all            1           bigint  avgt   30   607,840 ±  7,252  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5            all            1              all  avgt   30  1014,098 ±  6,765  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5            all            1              all  avgt   30  1016,619 ± 29,023  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5            all            2           bigint  avgt   30   530,157 ±  3,267  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5            all            2           bigint  avgt   30   516,812 ±  3,792  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5            all            2              all  avgt   30   927,662 ±  4,788  ms/op
BenchmarkHashBuildAndJoinOperators.benchmarkJoinHash                 true                      5            all            2              all  avgt   30   884,566 ±  7,603  ms/op

There are some cases when BEFORE or AFTER prevails. I investigated more and that might be some JIT noise since I've seen some good and bad runs depending how JVM started.

Let's move forward with this.

@sopel39 sopel39 merged commit 9676dbd into trinodb:master Nov 3, 2019
@Praveen2112 Praveen2112 deleted the join_work_processor branch November 9, 2019 14:21
@martint martint added this to the 325 milestone Nov 14, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Development

Successfully merging this pull request may close these issues.

3 participants