Skip to content

Replace row-wise DefaultPagePartitioner with ColumnarPagePartitioner#11146

Merged
sopel39 merged 5 commits intotrinodb:masterfrom
starburstdata:ls/003-cpoo
Mar 4, 2022
Merged

Replace row-wise DefaultPagePartitioner with ColumnarPagePartitioner#11146
sopel39 merged 5 commits intotrinodb:masterfrom
starburstdata:ls/003-cpoo

Conversation

@lukasz-stec
Copy link
Copy Markdown
Member

@lukasz-stec lukasz-stec commented Feb 22, 2022

Description

Add PagePartitioner implementation that copies pages column-wise.
The implementation switches to the old row-wise approach for cases where it's not beneficial to go column-wise.

Benchmarks

# Tpch/tpch

sf1000 orc partitioned
cpoo_sf1000_orc_part.pdf

JMH
| Benchmark                                  | channelCount | enableCompression | nullRate | partitionCount | positionCount | type                                                 | baseline  | columnar  | columnar %     |
| ------------------------------------------ | ------------ | ----------------- | -------- | -------------- | ------------- | ---------------------------------------------------- | --------- | --------- | -------------- |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0        | 2              | 8192          | BIGINT                                               | 1302.926  | 769.102   | -40.97116797  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0        | 2              | 8192          | BIGINT_SKEWED_HASH                                   | 1936.168  | 1118.931  | -42.20899219  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0        | 2              | 8192          | DICTIONARY_BIGINT                                    | 1206.206  | 650.893   | -46.03799019  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0        | 2              | 8192          | RLE_BIGINT                                           | 952.319   | 479.22    | -49.67862659  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0        | 2              | 8192          | BIGINT_PARTITION_CHANNEL_20_PERCENT                  | 888.163   | 560.123   | -36.93466177  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0        | 2              | 8192          | BIGINT_DICTIONARY_PARTITION_CHANNEL_20_PERCENT       | 1114.431  | 498.424   | -55.27547242  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0        | 2              | 8192          | BIGINT_DICTIONARY_PARTITION_CHANNEL_50_PERCENT       | 1128.77   | 546.881   | -51.55071449  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0        | 2              | 8192          | BIGINT_DICTIONARY_PARTITION_CHANNEL_80_PERCENT       | 1328.122  | 766.677   | -42.27360137  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0        | 2              | 8192          | BIGINT_DICTIONARY_PARTITION_CHANNEL_100_PERCENT      | 1406.781  | 947       | -32.6831966   |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0        | 2              | 8192          | RLE_PARTITION_BIGINT                                 | 1780.045  | 572.681   | -67.82772346  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0        | 2              | 8192          | RLE_PARTITION_NULL_BIGINT                            | 6.281     | 2.675     | -57.41124025  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0        | 2              | 8192          | LONG_DECIMAL                                         | 2524.384  | 1786.068  | -29.24737282  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0        | 2              | 8192          | INTEGER                                              | 1357.94   | 770.557   | -43.25544575  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0        | 2              | 8192          | SMALLINT                                             | 1376.242  | 776.705   | -43.56334133  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0        | 2              | 8192          | BOOLEAN                                              | 1273.884  | 705.885   | -44.58796876  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0        | 2              | 8192          | VARCHAR                                              | 3407.343  | 3008.769  | -11.69750154  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0        | 2              | 8192          | ARRAY_BIGINT                                         | 599.536   | 472.668   | -21.1610312   |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0        | 2              | 8192          | ARRAY_VARCHAR                                        | 1637.497  | 1534.025  | -6.31891234   |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0        | 2              | 8192          | ARRAY_ARRAY_BIGINT                                   | 1958.92   | 1740.14   | -11.16839891  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0        | 2              | 8192          | MAP_BIGINT_BIGINT                                    | 2623.346  | 1863.795  | -28.95351967  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0        | 2              | 8192          | MAP_BIGINT_MAP_BIGINT_BIGINT                         | 5665.363  | 5628.05   | -0.6586162264 |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0        | 2              | 8192          | ROW_BIGINT_BIGINT                                    | 710.468   | 503.575   | -29.12066413  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0        | 2              | 8192          | ROW_ARRAY_BIGINT_ARRAY_BIGINT                        | 1617.816  | 1462.798  | -9.581930207  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0        | 16             | 8192          | BIGINT                                               | 1444.293  | 831.347   | -42.43917266  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0        | 16             | 8192          | BIGINT_SKEWED_HASH                                   | 1478.507  | 1129.366  | -23.61442996  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0        | 16             | 8192          | DICTIONARY_BIGINT                                    | 1058.473  | 598.475   | -43.45864278  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0        | 16             | 8192          | RLE_BIGINT                                           | 987.504   | 529.149   | -46.41550819  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0        | 16             | 8192          | BIGINT_PARTITION_CHANNEL_20_PERCENT                  | 785.252   | 583.389   | -25.70677948  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0        | 16             | 8192          | BIGINT_DICTIONARY_PARTITION_CHANNEL_20_PERCENT       | 1092.184  | 523.947   | -52.02758876  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0        | 16             | 8192          | BIGINT_DICTIONARY_PARTITION_CHANNEL_50_PERCENT       | 1111.695  | 566.813   | -49.01362334  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0        | 16             | 8192          | BIGINT_DICTIONARY_PARTITION_CHANNEL_80_PERCENT       | 1342.185  | 845.712   | -36.98990825  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0        | 16             | 8192          | BIGINT_DICTIONARY_PARTITION_CHANNEL_100_PERCENT      | 1439.271  | 929.554   | -35.4149427   |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0        | 16             | 8192          | RLE_PARTITION_BIGINT                                 | 1752.947  | 586.828   | -66.52334611  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0        | 16             | 8192          | RLE_PARTITION_NULL_BIGINT                            | 6.81      | 2.701     | -60.33773862  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0        | 16             | 8192          | LONG_DECIMAL                                         | 1829.298  | 1233.125  | -32.5902614   |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0        | 16             | 8192          | INTEGER                                              | 1443.725  | 741.839   | -48.61632236  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0        | 16             | 8192          | SMALLINT                                             | 1295.63   | 872.862   | -32.6303034   |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0        | 16             | 8192          | BOOLEAN                                              | 1187.705  | 788.527   | -33.60918747  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0        | 16             | 8192          | VARCHAR                                              | 3491.593  | 2954.383  | -15.38581387  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0        | 16             | 8192          | ARRAY_BIGINT                                         | 752.269   | 458.261   | -39.08282808  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0        | 16             | 8192          | ARRAY_VARCHAR                                        | 1970.084  | 1583.343  | -19.6306858   |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0        | 16             | 8192          | ARRAY_ARRAY_BIGINT                                   | 2062.881  | 1718.861  | -16.67667694  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0        | 16             | 8192          | MAP_BIGINT_BIGINT                                    | 2325.006  | 1616.14   | -30.48878153  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0        | 16             | 8192          | MAP_BIGINT_MAP_BIGINT_BIGINT                         | 7450.894  | 6816.993  | -8.507717329  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0        | 16             | 8192          | ROW_BIGINT_BIGINT                                    | 710.563   | 641.962   | -9.6544571    |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0        | 16             | 8192          | ROW_ARRAY_BIGINT_ARRAY_BIGINT                        | 1666.879  | 1349.303  | -19.05213276  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0        | 256            | 8192          | BIGINT                                               | 2127.969  | 1162.371  | -45.37650689  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0        | 256            | 8192          | BIGINT_SKEWED_HASH                                   | 1744.494  | 1225.401  | -29.75607827  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0        | 256            | 8192          | DICTIONARY_BIGINT                                    | 1165.121  | 795.747   | -31.70263003  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0        | 256            | 8192          | RLE_BIGINT                                           | 1003.777  | 542.223   | -45.98172702  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0        | 256            | 8192          | BIGINT_PARTITION_CHANNEL_20_PERCENT                  | 911.041   | 620.684   | -31.87090372  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0        | 256            | 8192          | BIGINT_DICTIONARY_PARTITION_CHANNEL_20_PERCENT       | 1067.159  | 509.559   | -52.25088295  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0        | 256            | 8192          | BIGINT_DICTIONARY_PARTITION_CHANNEL_50_PERCENT       | 1128.943  | 586.323   | -48.06442841  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0        | 256            | 8192          | BIGINT_DICTIONARY_PARTITION_CHANNEL_80_PERCENT       | 1339.027  | 841.835   | -37.13084202  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0        | 256            | 8192          | BIGINT_DICTIONARY_PARTITION_CHANNEL_100_PERCENT      | 1104.041  | 1006.807  | -8.807100461  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0        | 256            | 8192          | RLE_PARTITION_BIGINT                                 | 1731.372  | 609.43    | -64.80074762  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0        | 256            | 8192          | RLE_PARTITION_NULL_BIGINT                            | 7.116     | 3.624     | -49.07251265  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0        | 256            | 8192          | LONG_DECIMAL                                         | 2633.272  | 1375.594  | -47.76103646  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0        | 256            | 8192          | INTEGER                                              | 2009.192  | 1045.348  | -47.97172197  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0        | 256            | 8192          | SMALLINT                                             | 1933.012  | 959.111   | -50.38256358  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0        | 256            | 8192          | BOOLEAN                                              | 1207.247  | 753.839   | -37.55718589  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0        | 256            | 8192          | VARCHAR                                              | 5700.359  | 3255.2    | -42.89482469  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0        | 256            | 8192          | ARRAY_BIGINT                                         | 938.458   | 766.523   | -18.3210117   |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0        | 256            | 8192          | ARRAY_VARCHAR                                        | 2368.788  | 1904.359  | -19.60618679  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0        | 256            | 8192          | ARRAY_ARRAY_BIGINT                                   | 2781.737  | 2155.849  | -22.49989844  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0        | 256            | 8192          | MAP_BIGINT_BIGINT                                    | 2349.572  | 1943.247  | -17.29357517  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0        | 256            | 8192          | MAP_BIGINT_MAP_BIGINT_BIGINT                         | 7496.46   | 6325.078  | -15.62580205  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0        | 256            | 8192          | ROW_BIGINT_BIGINT                                    | 1160.061  | 836.216   | -27.91620441  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0        | 256            | 8192          | ROW_ARRAY_BIGINT_ARRAY_BIGINT                        | 2697.067  | 1822.442  | -32.42874574  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0.2      | 2              | 8192          | BIGINT                                               | 1646.478  | 1270.516  | -22.83431664  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0.2      | 2              | 8192          | BIGINT_SKEWED_HASH                                   | 1919.47   | 1646.059  | -14.24408821  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0.2      | 2              | 8192          | DICTIONARY_BIGINT                                    | 1226.175  | 919.27    | -25.02946154  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0.2      | 2              | 8192          | RLE_BIGINT                                           | 993.583   | 546.51    | -44.99603959  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0.2      | 2              | 8192          | BIGINT_PARTITION_CHANNEL_20_PERCENT                  | 942.063   | 765.762   | -18.7143535   |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0.2      | 2              | 8192          | BIGINT_DICTIONARY_PARTITION_CHANNEL_20_PERCENT       | 1079.083  | 692.897   | -35.78834992  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0.2      | 2              | 8192          | BIGINT_DICTIONARY_PARTITION_CHANNEL_50_PERCENT       | 1095.834  | 698.804   | -36.23085248  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0.2      | 2              | 8192          | BIGINT_DICTIONARY_PARTITION_CHANNEL_80_PERCENT       | 1326.996  | 981.428   | -26.04137465  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0.2      | 2              | 8192          | BIGINT_DICTIONARY_PARTITION_CHANNEL_100_PERCENT      | 1387.114  | 1199.907  | -13.496151    |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0.2      | 2              | 8192          | RLE_PARTITION_BIGINT                                 | 1875.813  | 916.654   | -51.13297541  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0.2      | 2              | 8192          | RLE_PARTITION_NULL_BIGINT                            | 6.857     | 3.915     | -42.90506052  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0.2      | 2              | 8192          | LONG_DECIMAL                                         | 2050.416  | 1582.807  | -22.80556726  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0.2      | 2              | 8192          | INTEGER                                              | 1530.588  | 1162.388  | -24.05611438  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0.2      | 2              | 8192          | SMALLINT                                             | 1516.703  | 1013.684  | -33.1652934   |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0.2      | 2              | 8192          | BOOLEAN                                              | 1631.464  | 1240.743  | -23.94910338  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0.2      | 2              | 8192          | VARCHAR                                              | 3604.938  | 3643.791  | 1.077771657    |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0.2      | 2              | 8192          | ARRAY_BIGINT                                         | 808.011   | 725.302   | -10.23612302  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0.2      | 2              | 8192          | ARRAY_VARCHAR                                        | 1650.827  | 1505.909  | -8.778509196  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0.2      | 2              | 8192          | ARRAY_ARRAY_BIGINT                                   | 2142.252  | 2048.516  | -4.375582331  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0.2      | 2              | 8192          | MAP_BIGINT_BIGINT                                    | 1785.228  | 1689.082  | -5.385642618  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0.2      | 2              | 8192          | MAP_BIGINT_MAP_BIGINT_BIGINT                         | 4851.934  | 4461.389  | -8.049264479  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0.2      | 2              | 8192          | ROW_BIGINT_BIGINT                                    | 837.225   | 661.3     | -21.0128699   |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0.2      | 2              | 8192          | ROW_ARRAY_BIGINT_ARRAY_BIGINT                        | 1852.099  | 1772.665  | -4.288863608  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0.2      | 16             | 8192          | BIGINT                                               | 1515.336  | 1041.617  | -31.26164758  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0.2      | 16             | 8192          | BIGINT_SKEWED_HASH                                   | 1907.812  | 1727.84   | -9.433424258  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0.2      | 16             | 8192          | DICTIONARY_BIGINT                                    | 1043.224  | 656.817   | -37.03969617  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0.2      | 16             | 8192          | RLE_BIGINT                                           | 1012.265  | 597.133   | -41.01020978  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0.2      | 16             | 8192          | BIGINT_PARTITION_CHANNEL_20_PERCENT                  | 948.128   | 790.254   | -16.65112727  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0.2      | 16             | 8192          | BIGINT_DICTIONARY_PARTITION_CHANNEL_20_PERCENT       | 1098.098  | 687.351   | -37.40531355  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0.2      | 16             | 8192          | BIGINT_DICTIONARY_PARTITION_CHANNEL_50_PERCENT       | 1093.862  | 746.08    | -31.79395573  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0.2      | 16             | 8192          | BIGINT_DICTIONARY_PARTITION_CHANNEL_80_PERCENT       | 1336.2    | 1016.64   | -23.9155815   |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0.2      | 16             | 8192          | BIGINT_DICTIONARY_PARTITION_CHANNEL_100_PERCENT      | 1377.588  | 1192.294  | -13.45061078  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0.2      | 16             | 8192          | RLE_PARTITION_BIGINT                                 | 1861.171  | 916.732   | -50.74434321  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0.2      | 16             | 8192          | RLE_PARTITION_NULL_BIGINT                            | 6.917     | 4.044     | -41.53534769  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0.2      | 16             | 8192          | LONG_DECIMAL                                         | 1806.737  | 1178.898  | -34.74988335  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0.2      | 16             | 8192          | INTEGER                                              | 1492.28   | 1012.088  | -32.17841156  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0.2      | 16             | 8192          | SMALLINT                                             | 1441.843  | 888.18    | -38.3996732   |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0.2      | 16             | 8192          | BOOLEAN                                              | 1382.287  | 831.613   | -39.83789184  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0.2      | 16             | 8192          | VARCHAR                                              | 3161.59   | 2949.017  | -6.723610588  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0.2      | 16             | 8192          | ARRAY_BIGINT                                         | 709.124   | 577.973   | -18.49479076  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0.2      | 16             | 8192          | ARRAY_VARCHAR                                        | 1519.582  | 1438.652  | -5.325806702  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0.2      | 16             | 8192          | ARRAY_ARRAY_BIGINT                                   | 2131.942  | 2087.158  | -2.100619998  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0.2      | 16             | 8192          | MAP_BIGINT_BIGINT                                    | 1551.028  | 1293.686  | -16.59170563  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0.2      | 16             | 8192          | MAP_BIGINT_MAP_BIGINT_BIGINT                         | 4609.262  | 4658.954  | 1.078090158    |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0.2      | 16             | 8192          | ROW_BIGINT_BIGINT                                    | 783.013   | 599.198   | -23.4753446   |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0.2      | 16             | 8192          | ROW_ARRAY_BIGINT_ARRAY_BIGINT                        | 1696.338  | 1674.645  | -1.278813538  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0.2      | 256            | 8192          | BIGINT                                               | 2017.965  | 1251.385  | -37.98777481  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0.2      | 256            | 8192          | BIGINT_SKEWED_HASH                                   | 1970.866  | 1815.443  | -7.886025737  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0.2      | 256            | 8192          | DICTIONARY_BIGINT                                    | 1328.739  | 851.467   | -35.91916847  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0.2      | 256            | 8192          | RLE_BIGINT                                           | 997.416   | 626.612   | -37.17646398  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0.2      | 256            | 8192          | BIGINT_PARTITION_CHANNEL_20_PERCENT                  | 936.802   | 773.944   | -17.38446331  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0.2      | 256            | 8192          | BIGINT_DICTIONARY_PARTITION_CHANNEL_20_PERCENT       | 1100.638  | 724.973   | -34.13156733  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0.2      | 256            | 8192          | BIGINT_DICTIONARY_PARTITION_CHANNEL_50_PERCENT       | 1097.292  | 770.055   | -29.8222351   |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0.2      | 256            | 8192          | BIGINT_DICTIONARY_PARTITION_CHANNEL_80_PERCENT       | 1350.826  | 1051.77   | -22.13875066  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0.2      | 256            | 8192          | BIGINT_DICTIONARY_PARTITION_CHANNEL_100_PERCENT      | 1390.028  | 1218.119  | -12.36730483  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0.2      | 256            | 8192          | RLE_PARTITION_BIGINT                                 | 1901.381  | 980.588   | -48.42759026  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0.2      | 256            | 8192          | RLE_PARTITION_NULL_BIGINT                            | 7.888     | 5.282     | -33.03752535  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0.2      | 256            | 8192          | LONG_DECIMAL                                         | 2578.739  | 1464.405  | -43.21236077  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0.2      | 256            | 8192          | INTEGER                                              | 2020.733  | 1298.996  | -35.71659393  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0.2      | 256            | 8192          | SMALLINT                                             | 1917.248  | 1129.529  | -41.08592107  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0.2      | 256            | 8192          | BOOLEAN                                              | 1376.727  | 976.403   | -29.07795082  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0.2      | 256            | 8192          | VARCHAR                                              | 5123.119  | 3301.373  | -35.55931455  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0.2      | 256            | 8192          | ARRAY_BIGINT                                         | 937.792   | 835.528   | -10.90476353  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0.2      | 256            | 8192          | ARRAY_VARCHAR                                        | 2061.161  | 1894.317  | -8.094661213  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0.2      | 256            | 8192          | ARRAY_ARRAY_BIGINT                                   | 2522.042  | 2269.116  | -10.02861967  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0.2      | 256            | 8192          | MAP_BIGINT_BIGINT                                    | 2142.333  | 1694.135  | -20.92102395  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0.2      | 256            | 8192          | MAP_BIGINT_MAP_BIGINT_BIGINT                         | 5453.217  | 5341.727  | -2.044481267  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0.2      | 256            | 8192          | ROW_BIGINT_BIGINT                                    | 1102.601  | 808.415   | -26.68109316  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | TRUE              | 0.2      | 256            | 8192          | ROW_ARRAY_BIGINT_ARRAY_BIGINT                        | 2345.838  | 1876.885  | -19.99085188  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0        | 2              | 8192          | BIGINT                                               | 1328.014  | 782.884   | -41.04851304  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0        | 2              | 8192          | BIGINT_SKEWED_HASH                                   | 1341.07   | 951.721   | -29.03271268  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0        | 2              | 8192          | DICTIONARY_BIGINT                                    | 998.892   | 565.345   | -43.40279029  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0        | 2              | 8192          | RLE_BIGINT                                           | 989.367   | 549.45    | -44.46449093  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0        | 2              | 8192          | BIGINT_PARTITION_CHANNEL_20_PERCENT                  | 818.097   | 566.987   | -30.69440421  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0        | 2              | 8192          | BIGINT_DICTIONARY_PARTITION_CHANNEL_20_PERCENT       | 1021.362  | 458.36    | -55.12266953  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0        | 2              | 8192          | BIGINT_DICTIONARY_PARTITION_CHANNEL_50_PERCENT       | 1021.036  | 521.528   | -48.92168347  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0        | 2              | 8192          | BIGINT_DICTIONARY_PARTITION_CHANNEL_80_PERCENT       | 1032.333  | 569.624   | -44.8216806   |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0        | 2              | 8192          | BIGINT_DICTIONARY_PARTITION_CHANNEL_100_PERCENT      | 1016.136  | 637.31    | -37.28103325  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0        | 2              | 8192          | RLE_PARTITION_BIGINT                                 | 1677.801  | 580.697   | -65.38939958  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0        | 2              | 8192          | RLE_PARTITION_NULL_BIGINT                            | 6.148     | 2.601     | -57.69355888  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0        | 2              | 8192          | LONG_DECIMAL                                         | 1609.268  | 1069.346  | -33.55078209  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0        | 2              | 8192          | INTEGER                                              | 1326.069  | 879.578   | -33.67026904  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0        | 2              | 8192          | SMALLINT                                             | 1302.886  | 849.126   | -34.82729878  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0        | 2              | 8192          | BOOLEAN                                              | 1300.278  | 801.554   | -38.35518251  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0        | 2              | 8192          | VARCHAR                                              | 2818.775  | 2802.964  | -0.5609174198 |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0        | 2              | 8192          | ARRAY_BIGINT                                         | 556.795   | 493.318   | -11.40042565  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0        | 2              | 8192          | ARRAY_VARCHAR                                        | 1463.227  | 1289.521  | -11.87143212  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0        | 2              | 8192          | ARRAY_ARRAY_BIGINT                                   | 1934.333  | 1855.516  | -4.074634512  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0        | 2              | 8192          | MAP_BIGINT_BIGINT                                    | 1459.303  | 1071.631  | -26.56555904  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0        | 2              | 8192          | MAP_BIGINT_MAP_BIGINT_BIGINT                         | 4571.217  | 4710.173  | 3.039803186    |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0        | 2              | 8192          | ROW_BIGINT_BIGINT                                    | 639.188   | 507.635   | -20.58126873  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0        | 2              | 8192          | ROW_ARRAY_BIGINT_ARRAY_BIGINT                        | 1479.139  | 1363.726  | -7.802714958  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0        | 16             | 8192          | BIGINT                                               | 1436.78   | 898.92    | -37.43509793  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0        | 16             | 8192          | BIGINT_SKEWED_HASH                                   | 1334.748  | 1014.379  | -24.00220866  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0        | 16             | 8192          | DICTIONARY_BIGINT                                    | 1065.134  | 622.869   | -41.52200568  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0        | 16             | 8192          | RLE_BIGINT                                           | 1010.447  | 562.927   | -44.28930958  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0        | 16             | 8192          | BIGINT_PARTITION_CHANNEL_20_PERCENT                  | 799.241   | 627.254   | -21.51879095  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0        | 16             | 8192          | BIGINT_DICTIONARY_PARTITION_CHANNEL_20_PERCENT       | 1039.015  | 458.651   | -55.85713392  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0        | 16             | 8192          | BIGINT_DICTIONARY_PARTITION_CHANNEL_50_PERCENT       | 1042.339  | 551.893   | -47.05244647  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0        | 16             | 8192          | BIGINT_DICTIONARY_PARTITION_CHANNEL_80_PERCENT       | 1030.947  | 606.992   | -41.12287053  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0        | 16             | 8192          | BIGINT_DICTIONARY_PARTITION_CHANNEL_100_PERCENT      | 1028.115  | 667.305   | -35.09432311  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0        | 16             | 8192          | RLE_PARTITION_BIGINT                                 | 1634.18   | 591.4     | -63.81059614  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0        | 16             | 8192          | RLE_PARTITION_NULL_BIGINT                            | 6.011     | 2.579     | -57.09532524  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0        | 16             | 8192          | LONG_DECIMAL                                         | 1751.223  | 1306.027  | -25.42200508  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0        | 16             | 8192          | INTEGER                                              | 1428.153  | 938.248   | -34.30339747  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0        | 16             | 8192          | SMALLINT                                             | 1425.804  | 932.788   | -34.5781047   |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0        | 16             | 8192          | BOOLEAN                                              | 1276.056  | 897.798   | -29.64274295  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0        | 16             | 8192          | VARCHAR                                              | 3239.605  | 3084.066  | -4.801171748  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0        | 16             | 8192          | ARRAY_BIGINT                                         | 587.28    | 525.919   | -10.4483381   |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0        | 16             | 8192          | ARRAY_VARCHAR                                        | 1594.76   | 1464.104  | -8.192831523  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0        | 16             | 8192          | ARRAY_ARRAY_BIGINT                                   | 2004.263  | 1892.049  | -5.59876623   |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0        | 16             | 8192          | MAP_BIGINT_BIGINT                                    | 1596.031  | 1391.183  | -12.83483842  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0        | 16             | 8192          | MAP_BIGINT_MAP_BIGINT_BIGINT                         | 5044.242  | 4569.822  | -9.405179212  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0        | 16             | 8192          | ROW_BIGINT_BIGINT                                    | 732.507   | 537.054   | -26.68274842  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0        | 16             | 8192          | ROW_ARRAY_BIGINT_ARRAY_BIGINT                        | 1519.684  | 1454.59   | -4.283390494  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0        | 256            | 8192          | BIGINT                                               | 2142.286  | 1153.369  | -46.16176365  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0        | 256            | 8192          | BIGINT_SKEWED_HASH                                   | 1356.356  | 1017.215  | -25.0038338   |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0        | 256            | 8192          | DICTIONARY_BIGINT                                    | 1424.596  | 850.085   | -40.32799474  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0        | 256            | 8192          | RLE_BIGINT                                           | 996.244   | 631.306   | -36.63138749  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0        | 256            | 8192          | BIGINT_PARTITION_CHANNEL_20_PERCENT                  | 820.281   | 635.856   | -22.48314907  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0        | 256            | 8192          | BIGINT_DICTIONARY_PARTITION_CHANNEL_20_PERCENT       | 1052.514  | 516.466   | -50.93024891  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0        | 256            | 8192          | BIGINT_DICTIONARY_PARTITION_CHANNEL_50_PERCENT       | 1105.52   | 580.888   | -47.45567697  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0        | 256            | 8192          | BIGINT_DICTIONARY_PARTITION_CHANNEL_80_PERCENT       | 1041.5    | 621.096   | -40.36524244  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0        | 256            | 8192          | BIGINT_DICTIONARY_PARTITION_CHANNEL_100_PERCENT      | 1037.605  | 704.192   | -32.13294076  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0        | 256            | 8192          | RLE_PARTITION_BIGINT                                 | 1711.72   | 622.791   | -63.61607039  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0        | 256            | 8192          | RLE_PARTITION_NULL_BIGINT                            | 6.876     | 3.74      | -45.60791158  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0        | 256            | 8192          | LONG_DECIMAL                                         | 2703.82   | 1629.277  | -39.7416618   |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0        | 256            | 8192          | INTEGER                                              | 2097.015  | 1232.037  | -41.24805974  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0        | 256            | 8192          | SMALLINT                                             | 1970.243  | 1202.984  | -38.94235381  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0        | 256            | 8192          | BOOLEAN                                              | 1300.563  | 955.816   | -26.5075202   |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0        | 256            | 8192          | VARCHAR                                              | 5433.172  | 3729.668  | -31.35376535  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0        | 256            | 8192          | ARRAY_BIGINT                                         | 962.135   | 780.835   | -18.84350949  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0        | 256            | 8192          | ARRAY_VARCHAR                                        | 2287.687  | 2069.558  | -9.534914523  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0        | 256            | 8192          | ARRAY_ARRAY_BIGINT                                   | 2740.952  | 2093.304  | -23.62857868  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0        | 256            | 8192          | MAP_BIGINT_BIGINT                                    | 2376.493  | 1755.927  | -26.11267948  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0        | 256            | 8192          | MAP_BIGINT_MAP_BIGINT_BIGINT                         | 7145.292  | 6860.392  | -3.987240829  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0        | 256            | 8192          | ROW_BIGINT_BIGINT                                    | 1148.814  | 737.52    | -35.80161802  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0        | 256            | 8192          | ROW_ARRAY_BIGINT_ARRAY_BIGINT                        | 2438.02   | 1730.604  | -29.01600479  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0.2      | 2              | 8192          | BIGINT                                               | 1542.505  | 1141.967  | -25.96672296  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0.2      | 2              | 8192          | BIGINT_SKEWED_HASH                                   | 1528.385  | 1200.545  | -21.45009274  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0.2      | 2              | 8192          | DICTIONARY_BIGINT                                    | 1050.792  | 758.367   | -27.82900898  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0.2      | 2              | 8192          | RLE_BIGINT                                           | 985.578   | 547.333   | -44.46578556  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0.2      | 2              | 8192          | BIGINT_PARTITION_CHANNEL_20_PERCENT                  | 877.957   | 675.363   | -23.0756176   |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0.2      | 2              | 8192          | BIGINT_DICTIONARY_PARTITION_CHANNEL_20_PERCENT       | 1074.513  | 589.388   | -45.14836023  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0.2      | 2              | 8192          | BIGINT_DICTIONARY_PARTITION_CHANNEL_50_PERCENT       | 1044.045  | 631.848   | -39.48076951  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0.2      | 2              | 8192          | BIGINT_DICTIONARY_PARTITION_CHANNEL_80_PERCENT       | 1040.564  | 627.667   | -39.68011578  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0.2      | 2              | 8192          | BIGINT_DICTIONARY_PARTITION_CHANNEL_100_PERCENT      | 1029.127  | 779.784   | -24.22859375  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0.2      | 2              | 8192          | RLE_PARTITION_BIGINT                                 | 1850.428  | 867.953   | -53.09447328  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0.2      | 2              | 8192          | RLE_PARTITION_NULL_BIGINT                            | 6.78      | 3.874     | -42.86135693  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0.2      | 2              | 8192          | LONG_DECIMAL                                         | 1681.209  | 1185.421  | -29.48996823  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0.2      | 2              | 8192          | INTEGER                                              | 1486.483  | 1035.678  | -30.32695295  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0.2      | 2              | 8192          | SMALLINT                                             | 1393.511  | 953.533   | -31.57334244  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0.2      | 2              | 8192          | BOOLEAN                                              | 1445.677  | 991.316   | -31.42894298  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0.2      | 2              | 8192          | VARCHAR                                              | 2870.282  | 2633.568  | -8.247064226  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0.2      | 2              | 8192          | ARRAY_BIGINT                                         | 703.224   | 558.767   | -20.54210323  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0.2      | 2              | 8192          | ARRAY_VARCHAR                                        | 1255.166  | 1174.679  | -6.412458591  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0.2      | 2              | 8192          | ARRAY_ARRAY_BIGINT                                   | 2006.519  | 1945.431  | -3.044476529  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0.2      | 2              | 8192          | MAP_BIGINT_BIGINT                                    | 1439.195  | 1309.613  | -9.003783365  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0.2      | 2              | 8192          | MAP_BIGINT_MAP_BIGINT_BIGINT                         | 3808.236  | 3492.41   | -8.293236028  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0.2      | 2              | 8192          | ROW_BIGINT_BIGINT                                    | 741.837   | 564.075   | -23.96240684  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0.2      | 2              | 8192          | ROW_ARRAY_BIGINT_ARRAY_BIGINT                        | 1549.318  | 1512.847  | -2.354003503  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0.2      | 16             | 8192          | BIGINT                                               | 1466.336  | 979.943   | -33.17063756  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0.2      | 16             | 8192          | BIGINT_SKEWED_HASH                                   | 1574.268  | 1373.047  | -12.78187704  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0.2      | 16             | 8192          | DICTIONARY_BIGINT                                    | 1023.141  | 655.652   | -35.91772786  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0.2      | 16             | 8192          | RLE_BIGINT                                           | 980.678   | 568.113   | -42.06936426  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0.2      | 16             | 8192          | BIGINT_PARTITION_CHANNEL_20_PERCENT                  | 882.148   | 728.543   | -17.41261104  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0.2      | 16             | 8192          | BIGINT_DICTIONARY_PARTITION_CHANNEL_20_PERCENT       | 1034.492  | 650.021   | -37.16519799  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0.2      | 16             | 8192          | BIGINT_DICTIONARY_PARTITION_CHANNEL_50_PERCENT       | 1027.63   | 622.823   | -39.392291    |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0.2      | 16             | 8192          | BIGINT_DICTIONARY_PARTITION_CHANNEL_80_PERCENT       | 1019.902  | 658.343   | -35.4503668   |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0.2      | 16             | 8192          | BIGINT_DICTIONARY_PARTITION_CHANNEL_100_PERCENT      | 1039.249  | 796.849   | -23.32453531  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0.2      | 16             | 8192          | RLE_PARTITION_BIGINT                                 | 1838.673  | 900.44    | -51.02772489  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0.2      | 16             | 8192          | RLE_PARTITION_NULL_BIGINT                            | 6.892     | 3.91      | -43.26755659  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0.2      | 16             | 8192          | LONG_DECIMAL                                         | 1768.704  | 1141.687  | -35.45064635  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0.2      | 16             | 8192          | INTEGER                                              | 1478.627  | 889.719   | -39.82802965  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0.2      | 16             | 8192          | SMALLINT                                             | 1431.79   | 858.757   | -40.02214012  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0.2      | 16             | 8192          | BOOLEAN                                              | 1347.694  | 940.269   | -30.23126912  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0.2      | 16             | 8192          | VARCHAR                                              | 2971.862  | 2761.666  | -7.072872159  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0.2      | 16             | 8192          | ARRAY_BIGINT                                         | 725.752   | 694.491   | -4.307394261  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0.2      | 16             | 8192          | ARRAY_VARCHAR                                        | 1340      | 1199.433  | -10.49007463  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0.2      | 16             | 8192          | ARRAY_ARRAY_BIGINT                                   | 1997.005  | 1884.82   | -5.61766245   |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0.2      | 16             | 8192          | MAP_BIGINT_BIGINT                                    | 1496.776  | 1322.185  | -11.66447084  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0.2      | 16             | 8192          | MAP_BIGINT_MAP_BIGINT_BIGINT                         | 4043.786  | 3725.813  | -7.863249935  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0.2      | 16             | 8192          | ROW_BIGINT_BIGINT                                    | 794.52    | 576.589   | -27.42926547  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0.2      | 16             | 8192          | ROW_ARRAY_BIGINT_ARRAY_BIGINT                        | 1608.529  | 1471.911  | -8.493350135  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0.2      | 256            | 8192          | BIGINT                                               | 1983.131  | 1426.8    | -28.05316442  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0.2      | 256            | 8192          | BIGINT_SKEWED_HASH                                   | 1688.429  | 1351.925  | -19.93000594  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0.2      | 256            | 8192          | DICTIONARY_BIGINT                                    | 1344.609  | 848.275   | -36.91288694  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0.2      | 256            | 8192          | RLE_BIGINT                                           | 989.584   | 617.285   | -37.62176834  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0.2      | 256            | 8192          | BIGINT_PARTITION_CHANNEL_20_PERCENT                  | 873.076   | 756.496   | -13.35278945  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0.2      | 256            | 8192          | BIGINT_DICTIONARY_PARTITION_CHANNEL_20_PERCENT       | 1047.469  | 679.288   | -35.14958438  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0.2      | 256            | 8192          | BIGINT_DICTIONARY_PARTITION_CHANNEL_50_PERCENT       | 1056.427  | 675.651   | -36.04375882  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0.2      | 256            | 8192          | BIGINT_DICTIONARY_PARTITION_CHANNEL_80_PERCENT       | 1041.838  | 681.072   | -34.62784041  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0.2      | 256            | 8192          | BIGINT_DICTIONARY_PARTITION_CHANNEL_100_PERCENT      | 1033.718  | 816.641   | -20.99963433  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0.2      | 256            | 8192          | RLE_PARTITION_BIGINT                                 | 1850.437  | 933.937   | -49.52884103  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0.2      | 256            | 8192          | RLE_PARTITION_NULL_BIGINT                            | 7.586     | 5.209     | -31.33403638  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0.2      | 256            | 8192          | LONG_DECIMAL                                         | 2475.471  | 1443.022  | -41.70717411  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0.2      | 256            | 8192          | INTEGER                                              | 2011.162  | 1267.454  | -36.97902009  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0.2      | 256            | 8192          | SMALLINT                                             | 1908.761  | 1130.535  | -40.77126471  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0.2      | 256            | 8192          | BOOLEAN                                              | 1361.54   | 870.647   | -36.0542474   |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0.2      | 256            | 8192          | VARCHAR                                              | 4839.889  | 3281.086  | -32.20741219  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0.2      | 256            | 8192          | ARRAY_BIGINT                                         | 893.161   | 808.889   | -9.435252995  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0.2      | 256            | 8192          | ARRAY_VARCHAR                                        | 1912.328  | 1659.965  | -13.19663782  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0.2      | 256            | 8192          | ARRAY_ARRAY_BIGINT                                   | 2296.046  | 2055.136  | -10.49238561  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0.2      | 256            | 8192          | MAP_BIGINT_BIGINT                                    | 2138.706  | 1742.191  | -18.53994892  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0.2      | 256            | 8192          | MAP_BIGINT_MAP_BIGINT_BIGINT                         | 5432.889  | 5140.89   | -5.374654259  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0.2      | 256            | 8192          | ROW_BIGINT_BIGINT                                    | 1082.421  | 771.412   | -28.73272045  |
| BenchmarkPartitionedOutputOperator.addPage | 1            | FALSE             | 0.2      | 256            | 8192          | ROW_ARRAY_BIGINT_ARRAY_BIGINT                        | 2214.725  | 1695.168  | -23.45921051  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0        | 2              | 8192          | BIGINT                                               | 1863.551  | 1148.084  | -38.39267077  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0        | 2              | 8192          | BIGINT_SKEWED_HASH                                   | 2207.817  | 1657.039  | -24.94672339  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0        | 2              | 8192          | DICTIONARY_BIGINT                                    | 1656.253  | 1055.973  | -36.24325511  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0        | 2              | 8192          | RLE_BIGINT                                           | 1363.576  | 688.575   | -49.50226463  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0        | 2              | 8192          | BIGINT_PARTITION_CHANNEL_20_PERCENT                  | 1228.092  | 873.406   | -28.88106103  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0        | 2              | 8192          | BIGINT_DICTIONARY_PARTITION_CHANNEL_20_PERCENT       | 1510.711  | 762.043   | -49.55732764  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0        | 2              | 8192          | BIGINT_DICTIONARY_PARTITION_CHANNEL_50_PERCENT       | 1534.493  | 836.388   | -45.49417951  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0        | 2              | 8192          | BIGINT_DICTIONARY_PARTITION_CHANNEL_80_PERCENT       | 1702.515  | 1143.947  | -32.80840404  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0        | 2              | 8192          | BIGINT_DICTIONARY_PARTITION_CHANNEL_100_PERCENT      | 1800.282  | 1265.429  | -29.70940108  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0        | 2              | 8192          | RLE_PARTITION_BIGINT                                 | 2364.895  | 899.545   | -61.96258185  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0        | 2              | 8192          | RLE_PARTITION_NULL_BIGINT                            | 10.29     | 3.816     | -62.9154519   |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0        | 2              | 8192          | LONG_DECIMAL                                         | 4256.45   | 3758.952  | -11.68809689  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0        | 2              | 8192          | INTEGER                                              | 1786.379  | 1131.209  | -36.67586777  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0        | 2              | 8192          | SMALLINT                                             | 1961.655  | 1113.842  | -43.21927148  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0        | 2              | 8192          | BOOLEAN                                              | 1723.534  | 995.049   | -42.26693526  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0        | 2              | 8192          | VARCHAR                                              | 6947.303  | 6214.733  | -10.54466748  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0        | 2              | 8192          | ARRAY_BIGINT                                         | 1032.977  | 978.331   | -5.290146828  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0        | 2              | 8192          | ARRAY_VARCHAR                                        | 3319.275  | 3043.291  | -8.31458677   |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0        | 2              | 8192          | ARRAY_ARRAY_BIGINT                                   | 4007.356  | 3653.61   | -8.827416381  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0        | 2              | 8192          | MAP_BIGINT_BIGINT                                    | 3452.737  | 3560.543  | 3.122334542    |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0        | 2              | 8192          | MAP_BIGINT_MAP_BIGINT_BIGINT                         | 11520.933 | 11599.765 | 0.6842501384   |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0        | 2              | 8192          | ROW_BIGINT_BIGINT                                    | 1131.367  | 1024.381  | -9.45634794   |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0        | 2              | 8192          | ROW_ARRAY_BIGINT_ARRAY_BIGINT                        | 3361.872  | 2708.01   | -19.44934251  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0        | 16             | 8192          | BIGINT                                               | 2029.292  | 1300.127  | -35.93199007  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0        | 16             | 8192          | BIGINT_SKEWED_HASH                                   | 2229.439  | 1514.66   | -32.06093551  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0        | 16             | 8192          | DICTIONARY_BIGINT                                    | 1548.21   | 879.077   | -43.21978285  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0        | 16             | 8192          | RLE_BIGINT                                           | 1347.258  | 741.15    | -44.98826505  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0        | 16             | 8192          | BIGINT_PARTITION_CHANNEL_20_PERCENT                  | 1266.302  | 890.737   | -29.65840692  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0        | 16             | 8192          | BIGINT_DICTIONARY_PARTITION_CHANNEL_20_PERCENT       | 1519.514  | 787.816   | -48.15342274  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0        | 16             | 8192          | BIGINT_DICTIONARY_PARTITION_CHANNEL_50_PERCENT       | 1583.208  | 869.901   | -45.05453484  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0        | 16             | 8192          | BIGINT_DICTIONARY_PARTITION_CHANNEL_80_PERCENT       | 1702.761  | 1149.379  | -32.49909999  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0        | 16             | 8192          | BIGINT_DICTIONARY_PARTITION_CHANNEL_100_PERCENT      | 1788.277  | 1317.585  | -26.32097824  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0        | 16             | 8192          | RLE_PARTITION_BIGINT                                 | 2383.934  | 1007.899  | -57.72118691  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0        | 16             | 8192          | RLE_PARTITION_NULL_BIGINT                            | 8.474     | 3.914     | -53.81165919  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0        | 16             | 8192          | LONG_DECIMAL                                         | 2582.467  | 1945.5    | -24.66505864  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0        | 16             | 8192          | INTEGER                                              | 1930.602  | 1167.063  | -39.54927012  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0        | 16             | 8192          | SMALLINT                                             | 1964.057  | 1166.88   | -40.58828232  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0        | 16             | 8192          | BOOLEAN                                              | 1710.449  | 1107.672  | -35.24086366  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0        | 16             | 8192          | VARCHAR                                              | 6951.744  | 5737.327  | -17.46924225  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0        | 16             | 8192          | ARRAY_BIGINT                                         | 1584.935  | 792.682   | -49.98646632  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0        | 16             | 8192          | ARRAY_VARCHAR                                        | 3400.526  | 3122.428  | -8.178087743  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0        | 16             | 8192          | ARRAY_ARRAY_BIGINT                                   | 3977.859  | 3871.471  | -2.674504049  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0        | 16             | 8192          | MAP_BIGINT_BIGINT                                    | 3416.368  | 3007.709  | -11.96179686  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0        | 16             | 8192          | MAP_BIGINT_MAP_BIGINT_BIGINT                         | 12101.568 | 12336.407 | 1.94056671     |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0        | 16             | 8192          | ROW_BIGINT_BIGINT                                    | 1167.105  | 961.313   | -17.63268943  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0        | 16             | 8192          | ROW_ARRAY_BIGINT_ARRAY_BIGINT                        | 3696.905  | 3036.086  | -17.87492511  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0        | 256            | 8192          | BIGINT                                               | 3356.454  | 1654.233  | -50.71486158  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0        | 256            | 8192          | BIGINT_SKEWED_HASH                                   | 2325.239  | 1682.344  | -27.6485557   |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0        | 256            | 8192          | DICTIONARY_BIGINT                                    | 2346.952  | 1181.381  | -49.66318016  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0        | 256            | 8192          | RLE_BIGINT                                           | 1346.87   | 776.393   | -42.35575817  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0        | 256            | 8192          | BIGINT_PARTITION_CHANNEL_20_PERCENT                  | 1222.365  | 937.465   | -23.30727729  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0        | 256            | 8192          | BIGINT_DICTIONARY_PARTITION_CHANNEL_20_PERCENT       | 1537.557  | 749.789   | -51.23504364  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0        | 256            | 8192          | BIGINT_DICTIONARY_PARTITION_CHANNEL_50_PERCENT       | 1579.6    | 839.971   | -46.82381616  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0        | 256            | 8192          | BIGINT_DICTIONARY_PARTITION_CHANNEL_80_PERCENT       | 1773.056  | 1174.826  | -33.74005108  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0        | 256            | 8192          | BIGINT_DICTIONARY_PARTITION_CHANNEL_100_PERCENT      | 1813.264  | 1352.696  | -25.39994176  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0        | 256            | 8192          | RLE_PARTITION_BIGINT                                 | 2415.479  | 1038.98   | -56.98658527  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0        | 256            | 8192          | RLE_PARTITION_NULL_BIGINT                            | 9.574     | 5.204     | -45.64445373  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0        | 256            | 8192          | LONG_DECIMAL                                         | 4517.214  | 2324.894  | -48.53256897  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0        | 256            | 8192          | INTEGER                                              | 3139.564  | 1539.959  | -50.94990897  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0        | 256            | 8192          | SMALLINT                                             | 3094.451  | 1366.597  | -55.83717435  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0        | 256            | 8192          | BOOLEAN                                              | 1716.71   | 1055.458  | -38.51856167  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0        | 256            | 8192          | VARCHAR                                              | 10705.525 | 6495.568  | -39.32508681  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0        | 256            | 8192          | ARRAY_BIGINT                                         | 1704.004  | 1389.828  | -18.4375154   |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0        | 256            | 8192          | ARRAY_VARCHAR                                        | 4994.287  | 4197.568  | -15.95260745  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0        | 256            | 8192          | ARRAY_ARRAY_BIGINT                                   | 4725.504  | 4328.849  | -8.393919463  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0        | 256            | 8192          | MAP_BIGINT_BIGINT                                    | 4606.289  | 3991.436  | -13.34812036  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0        | 256            | 8192          | MAP_BIGINT_MAP_BIGINT_BIGINT                         | 15136.29  | 14127.481 | -6.664836628  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0        | 256            | 8192          | ROW_BIGINT_BIGINT                                    | 2119.629  | 1332.534  | -37.13362103  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0        | 256            | 8192          | ROW_ARRAY_BIGINT_ARRAY_BIGINT                        | 4993.776  | 3591.435  | -28.0817762   |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0.2      | 2              | 8192          | BIGINT                                               | 2621.977  | 2180.791  | -16.82646339  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0.2      | 2              | 8192          | BIGINT_SKEWED_HASH                                   | 2833.757  | 2406.509  | -15.07708671  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0.2      | 2              | 8192          | DICTIONARY_BIGINT                                    | 1908.848  | 1495.323  | -21.66358977  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0.2      | 2              | 8192          | RLE_BIGINT                                           | 1373.405  | 687.241   | -49.96079088  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0.2      | 2              | 8192          | BIGINT_PARTITION_CHANNEL_20_PERCENT                  | 1528.907  | 1278.892  | -16.35253158  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0.2      | 2              | 8192          | BIGINT_DICTIONARY_PARTITION_CHANNEL_20_PERCENT       | 1857.598  | 1168.968  | -37.07099168  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0.2      | 2              | 8192          | BIGINT_DICTIONARY_PARTITION_CHANNEL_50_PERCENT       | 1859.535  | 1231.557  | -33.77070074  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0.2      | 2              | 8192          | BIGINT_DICTIONARY_PARTITION_CHANNEL_80_PERCENT       | 2107.522  | 1581.627  | -24.95323892  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0.2      | 2              | 8192          | BIGINT_DICTIONARY_PARTITION_CHANNEL_100_PERCENT      | 2141.509  | 1678.833  | -21.60513918  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0.2      | 2              | 8192          | RLE_PARTITION_BIGINT                                 | 2986.759  | 1697.733  | -43.15801844  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0.2      | 2              | 8192          | RLE_PARTITION_NULL_BIGINT                            | 10.687    | 6.572     | -38.50472537  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0.2      | 2              | 8192          | LONG_DECIMAL                                         | 3704.18   | 3255.385  | -12.11590689  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0.2      | 2              | 8192          | INTEGER                                              | 2252.082  | 1668.707  | -25.90380812  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0.2      | 2              | 8192          | SMALLINT                                             | 2196.014  | 1620.066  | -26.22697305  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0.2      | 2              | 8192          | BOOLEAN                                              | 2269.21   | 1728.969  | -23.80744841  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0.2      | 2              | 8192          | VARCHAR                                              | 6452.753  | 6317.546  | -2.095338222  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0.2      | 2              | 8192          | ARRAY_BIGINT                                         | 1533.58   | 1254.355  | -18.20739707  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0.2      | 2              | 8192          | ARRAY_VARCHAR                                        | 2991.038  | 2704.146  | -9.591720333  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0.2      | 2              | 8192          | ARRAY_ARRAY_BIGINT                                   | 4268.808  | 3749.68   | -12.16095922  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0.2      | 2              | 8192          | MAP_BIGINT_BIGINT                                    | 3536.68   | 3234.025  | -8.557602045  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0.2      | 2              | 8192          | MAP_BIGINT_MAP_BIGINT_BIGINT                         | 9650.767  | 8993.088  | -6.814784773  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0.2      | 2              | 8192          | ROW_BIGINT_BIGINT                                    | 1520.686  | 1310.138  | -13.84559337  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0.2      | 2              | 8192          | ROW_ARRAY_BIGINT_ARRAY_BIGINT                        | 3684.76   | 3284.749  | -10.85582236  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0.2      | 16             | 8192          | BIGINT                                               | 2347.055  | 1545.051  | -34.17065216  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0.2      | 16             | 8192          | BIGINT_SKEWED_HASH                                   | 2869.927  | 2248.489  | -21.65344275  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0.2      | 16             | 8192          | DICTIONARY_BIGINT                                    | 1626.832  | 1020.741  | -37.25590596  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0.2      | 16             | 8192          | RLE_BIGINT                                           | 1379.959  | 666.247   | -51.71979747  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0.2      | 16             | 8192          | BIGINT_PARTITION_CHANNEL_20_PERCENT                  | 1543.19   | 1200.776  | -22.18871299  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0.2      | 16             | 8192          | BIGINT_DICTIONARY_PARTITION_CHANNEL_20_PERCENT       | 1847.985  | 1059.159  | -42.68573609  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0.2      | 16             | 8192          | BIGINT_DICTIONARY_PARTITION_CHANNEL_50_PERCENT       | 1891.059  | 1164.796  | -38.40509471  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0.2      | 16             | 8192          | BIGINT_DICTIONARY_PARTITION_CHANNEL_80_PERCENT       | 2102.236  | 1444.431  | -31.29073044  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0.2      | 16             | 8192          | BIGINT_DICTIONARY_PARTITION_CHANNEL_100_PERCENT      | 2119.657  | 1521.786  | -28.20602579  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0.2      | 16             | 8192          | RLE_PARTITION_BIGINT                                 | 2892.784  | 1519.324  | -47.47883008  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0.2      | 16             | 8192          | RLE_PARTITION_NULL_BIGINT                            | 10.584    | 5.977     | -43.52796674  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0.2      | 16             | 8192          | LONG_DECIMAL                                         | 2956.07   | 2033.117  | -31.22229852  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0.2      | 16             | 8192          | INTEGER                                              | 2179.73   | 1324.936  | -39.21559092  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0.2      | 16             | 8192          | SMALLINT                                             | 2170.838  | 1313.906  | -39.47470977  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0.2      | 16             | 8192          | BOOLEAN                                              | 1996.539  | 1258.53   | -36.96441692  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0.2      | 16             | 8192          | VARCHAR                                              | 6602.189  | 5568.112  | -15.66263856  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0.2      | 16             | 8192          | ARRAY_BIGINT                                         | 1404.037  | 1395.953  | -0.5757683024 |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0.2      | 16             | 8192          | ARRAY_VARCHAR                                        | 3181.429  | 2837.252  | -10.81831466  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0.2      | 16             | 8192          | ARRAY_ARRAY_BIGINT                                   | 4531.893  | 3843.637  | -15.18694285  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0.2      | 16             | 8192          | MAP_BIGINT_BIGINT                                    | 3177.582  | 2998.263  | -5.643253266  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0.2      | 16             | 8192          | MAP_BIGINT_MAP_BIGINT_BIGINT                         | 10161.177 | 10032.469 | -1.266664285  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0.2      | 16             | 8192          | ROW_BIGINT_BIGINT                                    | 1435.117  | 1222.056  | -14.84624599  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0.2      | 16             | 8192          | ROW_ARRAY_BIGINT_ARRAY_BIGINT                        | 3769.371  | 3160.605  | -16.15033384  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0.2      | 256            | 8192          | BIGINT                                               | 3603.348  | 1869.297  | -48.12332864  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0.2      | 256            | 8192          | BIGINT_SKEWED_HASH                                   | 2924.296  | 2298.626  | -21.39557692  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0.2      | 256            | 8192          | DICTIONARY_BIGINT                                    | 2460.315  | 1305.858  | -46.92313789  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0.2      | 256            | 8192          | RLE_BIGINT                                           | 1417.95   | 693.506   | -51.09094115  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0.2      | 256            | 8192          | BIGINT_PARTITION_CHANNEL_20_PERCENT                  | 1624.301  | 1171.77   | -27.86004564  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0.2      | 256            | 8192          | BIGINT_DICTIONARY_PARTITION_CHANNEL_20_PERCENT       | 1898.433  | 1064.76   | -43.9137436   |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0.2      | 256            | 8192          | BIGINT_DICTIONARY_PARTITION_CHANNEL_50_PERCENT       | 1976.506  | 1188.553  | -39.86595538  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0.2      | 256            | 8192          | BIGINT_DICTIONARY_PARTITION_CHANNEL_80_PERCENT       | 2162.189  | 1474.857  | -31.78871042  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0.2      | 256            | 8192          | BIGINT_DICTIONARY_PARTITION_CHANNEL_100_PERCENT      | 2216.69   | 1603.843  | -27.64694206  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0.2      | 256            | 8192          | RLE_PARTITION_BIGINT                                 | 3002.727  | 1558.729  | -48.08955326  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0.2      | 256            | 8192          | RLE_PARTITION_NULL_BIGINT                            | 11.857    | 7.009     | -40.88723961  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0.2      | 256            | 8192          | LONG_DECIMAL                                         | 4677.723  | 2320.731  | -50.38759242  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0.2      | 256            | 8192          | INTEGER                                              | 3445.302  | 1717.331  | -50.15441317  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0.2      | 256            | 8192          | SMALLINT                                             | 3362.97   | 1654.417  | -50.80488378  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0.2      | 256            | 8192          | BOOLEAN                                              | 2117.017  | 1274.301  | -39.80676584  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0.2      | 256            | 8192          | VARCHAR                                              | 10106.621 | 5992.898  | -40.7032479   |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0.2      | 256            | 8192          | ARRAY_BIGINT                                         | 1952.088  | 1578.714  | -19.12690411  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0.2      | 256            | 8192          | ARRAY_VARCHAR                                        | 4552.44   | 3531.057  | -22.43594644  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0.2      | 256            | 8192          | ARRAY_ARRAY_BIGINT                                   | 5689.664  | 4087.047  | -28.16716418  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0.2      | 256            | 8192          | MAP_BIGINT_BIGINT                                    | 4602.194  | 3313.204  | -28.00816306  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0.2      | 256            | 8192          | MAP_BIGINT_MAP_BIGINT_BIGINT                         | 12380.703 | 10727.556 | -13.35261011  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0.2      | 256            | 8192          | ROW_BIGINT_BIGINT                                    | 2142.785  | 1714.245  | -19.99920664  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | TRUE              | 0.2      | 256            | 8192          | ROW_ARRAY_BIGINT_ARRAY_BIGINT                        | 4918.781  | 3438.696  | -30.0904838   |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0        | 2              | 8192          | BIGINT                                               | 1878.825  | 1008.841  | -46.30468511  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0        | 2              | 8192          | BIGINT_SKEWED_HASH                                   | 1836.541  | 1063.404  | -42.09745385  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0        | 2              | 8192          | DICTIONARY_BIGINT                                    | 1430.465  | 659.956   | -53.86423296  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0        | 2              | 8192          | RLE_BIGINT                                           | 1421.343  | 622.172   | -56.22647032  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0        | 2              | 8192          | BIGINT_PARTITION_CHANNEL_20_PERCENT                  | 1091.402  | 593.307   | -45.63808752  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0        | 2              | 8192          | BIGINT_DICTIONARY_PARTITION_CHANNEL_20_PERCENT       | 1363.086  | 540.865   | -60.32055204  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0        | 2              | 8192          | BIGINT_DICTIONARY_PARTITION_CHANNEL_50_PERCENT       | 1361.662  | 551.261   | -59.51557729  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0        | 2              | 8192          | BIGINT_DICTIONARY_PARTITION_CHANNEL_80_PERCENT       | 1397.036  | 658.675   | -52.85196659  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0        | 2              | 8192          | BIGINT_DICTIONARY_PARTITION_CHANNEL_100_PERCENT      | 1468.358  | 702.096   | -52.18495762  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0        | 2              | 8192          | RLE_PARTITION_BIGINT                                 | 2345.955  | 760.505   | -67.58228525  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0        | 2              | 8192          | RLE_PARTITION_NULL_BIGINT                            | 8.621     | 3.102     | -64.01809535  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0        | 2              | 8192          | LONG_DECIMAL                                         | 2422.679  | 1446.245  | -40.30389499  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0        | 2              | 8192          | INTEGER                                              | 2011.761  | 970.725   | -51.74749883  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0        | 2              | 8192          | SMALLINT                                             | 1999.281  | 861.114   | -56.92881591  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0        | 2              | 8192          | BOOLEAN                                              | 1850.035  | 857.463   | -53.65152551  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0        | 2              | 8192          | VARCHAR                                              | 6990.921  | 4335.687  | -37.98117587  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0        | 2              | 8192          | ARRAY_BIGINT                                         | 1168.087  | 719.947   | -38.365293    |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0        | 2              | 8192          | ARRAY_VARCHAR                                        | 3350.386  | 2723.425  | -18.71309754  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0        | 2              | 8192          | ARRAY_ARRAY_BIGINT                                   | 4663.131  | 3118.03   | -33.13441119  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0        | 2              | 8192          | MAP_BIGINT_BIGINT                                    | 3291.085  | 2539.565  | -22.83502249  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0        | 2              | 8192          | MAP_BIGINT_MAP_BIGINT_BIGINT                         | 14236.893 | 8998.296  | -36.79592872  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0        | 2              | 8192          | ROW_BIGINT_BIGINT                                    | 1181.43   | 811.117   | -31.34447238  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0        | 2              | 8192          | ROW_ARRAY_BIGINT_ARRAY_BIGINT                        | 3950.073  | 2373.669  | -39.90822448  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0        | 16             | 8192          | BIGINT                                               | 2150.564  | 1118.559  | -47.98764417  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0        | 16             | 8192          | BIGINT_SKEWED_HASH                                   | 1945.991  | 1136.624  | -41.59150787  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0        | 16             | 8192          | DICTIONARY_BIGINT                                    | 1723.68   | 780.191   | -54.73690012  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0        | 16             | 8192          | RLE_BIGINT                                           | 1407.246  | 661.208   | -53.01404303  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0        | 16             | 8192          | BIGINT_PARTITION_CHANNEL_20_PERCENT                  | 1162.055  | 629.438   | -45.83406121  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0        | 16             | 8192          | BIGINT_DICTIONARY_PARTITION_CHANNEL_20_PERCENT       | 1628.712  | 557.997   | -65.7399835   |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0        | 16             | 8192          | BIGINT_DICTIONARY_PARTITION_CHANNEL_50_PERCENT       | 1446.426  | 609.922   | -57.83247812  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0        | 16             | 8192          | BIGINT_DICTIONARY_PARTITION_CHANNEL_80_PERCENT       | 1496.395  | 669.772   | -55.24096245  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0        | 16             | 8192          | BIGINT_DICTIONARY_PARTITION_CHANNEL_100_PERCENT      | 1418.307  | 735.122   | -48.16904944  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0        | 16             | 8192          | RLE_PARTITION_BIGINT                                 | 2426.715  | 766.76    | -68.40337658  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0        | 16             | 8192          | RLE_PARTITION_NULL_BIGINT                            | 8.617     | 3.252     | -62.26064756  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0        | 16             | 8192          | LONG_DECIMAL                                         | 2721.521  | 1715.607  | -36.96146383  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0        | 16             | 8192          | INTEGER                                              | 2238.343  | 1026.796  | -54.12695909  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0        | 16             | 8192          | SMALLINT                                             | 2092.595  | 994.14    | -52.49247943  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0        | 16             | 8192          | BOOLEAN                                              | 1818.597  | 934.485   | -48.61505875  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0        | 16             | 8192          | VARCHAR                                              | 7605.351  | 5089.667  | -33.07781587  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0        | 16             | 8192          | ARRAY_BIGINT                                         | 1165.279  | 799.529   | -31.38733299  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0        | 16             | 8192          | ARRAY_VARCHAR                                        | 3547.839  | 2940.002  | -17.13259818  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0        | 16             | 8192          | ARRAY_ARRAY_BIGINT                                   | 4429.31   | 3318.057  | -25.08862554  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0        | 16             | 8192          | MAP_BIGINT_BIGINT                                    | 3581.367  | 3198.026  | -10.703762    |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0        | 16             | 8192          | MAP_BIGINT_MAP_BIGINT_BIGINT                         | 11994.207 | 10292.802 | -14.18522292  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0        | 16             | 8192          | ROW_BIGINT_BIGINT                                    | 2064.782  | 1177.686  | -42.96317965  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0        | 16             | 8192          | ROW_ARRAY_BIGINT_ARRAY_BIGINT                        | 3507.124  | 2438.934  | -30.45771977  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0        | 256            | 8192          | BIGINT                                               | 3916.095  | 1551.476  | -60.38206428  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0        | 256            | 8192          | BIGINT_SKEWED_HASH                                   | 2019.142  | 1144.791  | -43.30309607  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0        | 256            | 8192          | DICTIONARY_BIGINT                                    | 2680.411  | 1114.69   | -58.41346719  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0        | 256            | 8192          | RLE_BIGINT                                           | 1379.229  | 695.817   | -49.55029223  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0        | 256            | 8192          | BIGINT_PARTITION_CHANNEL_20_PERCENT                  | 1140.387  | 703.085   | -38.34680683  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0        | 256            | 8192          | BIGINT_DICTIONARY_PARTITION_CHANNEL_20_PERCENT       | 1439.395  | 584.237   | -59.41093307  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0        | 256            | 8192          | BIGINT_DICTIONARY_PARTITION_CHANNEL_50_PERCENT       | 1438.996  | 636.148   | -55.79223292  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0        | 256            | 8192          | BIGINT_DICTIONARY_PARTITION_CHANNEL_80_PERCENT       | 1368.816  | 681.185   | -50.23545897  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0        | 256            | 8192          | BIGINT_DICTIONARY_PARTITION_CHANNEL_100_PERCENT      | 1457.118  | 762.63    | -47.66175423  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0        | 256            | 8192          | RLE_PARTITION_BIGINT                                 | 2233.499  | 818.766   | -63.34155511  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0        | 256            | 8192          | RLE_PARTITION_NULL_BIGINT                            | 9.421     | 4.392     | -53.38074514  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0        | 256            | 8192          | LONG_DECIMAL                                         | 5056.676  | 2179.436  | -56.89982906  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0        | 256            | 8192          | INTEGER                                              | 3331.506  | 1437.124  | -56.86263209  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0        | 256            | 8192          | SMALLINT                                             | 3228.211  | 1406.998  | -56.41555028  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0        | 256            | 8192          | BOOLEAN                                              | 1775.18   | 1009.466  | -43.1344427   |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0        | 256            | 8192          | VARCHAR                                              | 11558.11  | 6073.433  | -47.4530611   |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0        | 256            | 8192          | ARRAY_BIGINT                                         | 1869.353  | 1261.031  | -32.54184737  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0        | 256            | 8192          | ARRAY_VARCHAR                                        | 4920.551  | 3796.778  | -22.83835692  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0        | 256            | 8192          | ARRAY_ARRAY_BIGINT                                   | 5458.743  | 3809.807  | -30.20724735  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0        | 256            | 8192          | MAP_BIGINT_BIGINT                                    | 5180.376  | 3906.193  | -24.59634204  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0        | 256            | 8192          | MAP_BIGINT_MAP_BIGINT_BIGINT                         | 15128.268 | 12163.868 | -19.595105    |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0        | 256            | 8192          | ROW_BIGINT_BIGINT                                    | 2327.68   | 1541.453  | -33.77728038  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0        | 256            | 8192          | ROW_ARRAY_BIGINT_ARRAY_BIGINT                        | 5908.734  | 3192.326  | -45.97275829  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0.2      | 2              | 8192          | BIGINT                                               | 2937.459  | 1745.822  | -40.56693217  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0.2      | 2              | 8192          | BIGINT_SKEWED_HASH                                   | 2629.7    | 1751.494  | -33.39567251  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0.2      | 2              | 8192          | DICTIONARY_BIGINT                                    | 1796.716  | 1089.904  | -39.33910535  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0.2      | 2              | 8192          | RLE_BIGINT                                           | 1466.173  | 619.295   | -57.76112369  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0.2      | 2              | 8192          | BIGINT_PARTITION_CHANNEL_20_PERCENT                  | 1518.803  | 1079.47   | -28.92626628  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0.2      | 2              | 8192          | BIGINT_DICTIONARY_PARTITION_CHANNEL_20_PERCENT       | 1986.096  | 997.628   | -49.76939685  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0.2      | 2              | 8192          | BIGINT_DICTIONARY_PARTITION_CHANNEL_50_PERCENT       | 1885.521  | 1004.151  | -46.74410945  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0.2      | 2              | 8192          | BIGINT_DICTIONARY_PARTITION_CHANNEL_80_PERCENT       | 1743.514  | 1072.907  | -38.4629547   |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0.2      | 2              | 8192          | BIGINT_DICTIONARY_PARTITION_CHANNEL_100_PERCENT      | 1818.783  | 1141.428  | -37.24221086  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0.2      | 2              | 8192          | RLE_PARTITION_BIGINT                                 | 3231.044  | 1373.811  | -57.48089472  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0.2      | 2              | 8192          | RLE_PARTITION_NULL_BIGINT                            | 10.881    | 5.841     | -46.31927213  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0.2      | 2              | 8192          | LONG_DECIMAL                                         | 2931.693  | 1639.732  | -44.06876846  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0.2      | 2              | 8192          | INTEGER                                              | 2143.389  | 1391.832  | -35.06395713  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0.2      | 2              | 8192          | SMALLINT                                             | 2123.12   | 1315.507  | -38.03897095  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0.2      | 2              | 8192          | BOOLEAN                                              | 2061.169  | 1294.812  | -37.18069697  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0.2      | 2              | 8192          | VARCHAR                                              | 5414.481  | 4272.542  | -21.09046093  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0.2      | 2              | 8192          | ARRAY_BIGINT                                         | 1273.496  | 1133.558  | -10.98849152  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0.2      | 2              | 8192          | ARRAY_VARCHAR                                        | 2690.236  | 2224.602  | -17.30829563  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0.2      | 2              | 8192          | ARRAY_ARRAY_BIGINT                                   | 3720.987  | 3347.694  | -10.03209632  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0.2      | 2              | 8192          | MAP_BIGINT_BIGINT                                    | 2916.766  | 2711.923  | -7.02294939   |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0.2      | 2              | 8192          | MAP_BIGINT_MAP_BIGINT_BIGINT                         | 7850.97   | 7624.172  | -2.888789538  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0.2      | 2              | 8192          | ROW_BIGINT_BIGINT                                    | 1380.1    | 1190.544  | -13.73494674  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0.2      | 2              | 8192          | ROW_ARRAY_BIGINT_ARRAY_BIGINT                        | 3251.848  | 2613.361  | -19.63458932  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0.2      | 16             | 8192          | BIGINT                                               | 2412.525  | 1518.832  | -37.04388556  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0.2      | 16             | 8192          | BIGINT_SKEWED_HASH                                   | 2408.481  | 1763.378  | -26.78464144  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0.2      | 16             | 8192          | DICTIONARY_BIGINT                                    | 1688.07   | 1004.218  | -40.51087929  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0.2      | 16             | 8192          | RLE_BIGINT                                           | 1461.4    | 659.568   | -54.86738744  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0.2      | 16             | 8192          | BIGINT_PARTITION_CHANNEL_20_PERCENT                  | 1431.44   | 1083.295  | -24.3213128   |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0.2      | 16             | 8192          | BIGINT_DICTIONARY_PARTITION_CHANNEL_20_PERCENT       | 1807.114  | 975.661   | -46.00999162  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0.2      | 16             | 8192          | BIGINT_DICTIONARY_PARTITION_CHANNEL_50_PERCENT       | 1781.458  | 986.743   | -44.61036971  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0.2      | 16             | 8192          | BIGINT_DICTIONARY_PARTITION_CHANNEL_80_PERCENT       | 1791.681  | 1090.49   | -39.13592877  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0.2      | 16             | 8192          | BIGINT_DICTIONARY_PARTITION_CHANNEL_100_PERCENT      | 1779.834  | 1188.946  | -33.19905115  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0.2      | 16             | 8192          | RLE_PARTITION_BIGINT                                 | 3038.465  | 1336.414  | -56.01680454  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0.2      | 16             | 8192          | RLE_PARTITION_NULL_BIGINT                            | 10.647    | 5.696     | -46.50136189  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0.2      | 16             | 8192          | LONG_DECIMAL                                         | 2808.941  | 1922.446  | -31.55975864  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0.2      | 16             | 8192          | INTEGER                                              | 2176.804  | 1310.813  | -39.7826814   |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0.2      | 16             | 8192          | SMALLINT                                             | 2276.514  | 1328.399  | -41.64766832  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0.2      | 16             | 8192          | BOOLEAN                                              | 1998.342  | 1150.102  | -42.44718872  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0.2      | 16             | 8192          | VARCHAR                                              | 5974.73   | 4668.431  | -21.86373275  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0.2      | 16             | 8192          | ARRAY_BIGINT                                         | 1339.121  | 1349.789  | 0.7966419763   |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0.2      | 16             | 8192          | ARRAY_VARCHAR                                        | 2801.763  | 2333.093  | -16.72768182  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0.2      | 16             | 8192          | ARRAY_ARRAY_BIGINT                                   | 4045.864  | 3361.116  | -16.92464205  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0.2      | 16             | 8192          | MAP_BIGINT_BIGINT                                    | 3120.186  | 3201.132  | 2.594268419    |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0.2      | 16             | 8192          | MAP_BIGINT_MAP_BIGINT_BIGINT                         | 9464.825  | 8042.458  | -15.02792709  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0.2      | 16             | 8192          | ROW_BIGINT_BIGINT                                    | 1415.148  | 1150.543  | -18.6980443   |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0.2      | 16             | 8192          | ROW_ARRAY_BIGINT_ARRAY_BIGINT                        | 3622.822  | 2647.574  | -26.91956712  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0.2      | 256            | 8192          | BIGINT                                               | 4055.148  | 1917.593  | -52.71213282  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0.2      | 256            | 8192          | BIGINT_SKEWED_HASH                                   | 2617.151  | 1751.685  | -33.06901283  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0.2      | 256            | 8192          | DICTIONARY_BIGINT                                    | 2709.687  | 1319.012  | -51.3223483   |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0.2      | 256            | 8192          | RLE_BIGINT                                           | 1482.755  | 683.354   | -53.91322235  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0.2      | 256            | 8192          | BIGINT_PARTITION_CHANNEL_20_PERCENT                  | 1666.373  | 1115.591  | -33.05274389  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0.2      | 256            | 8192          | BIGINT_DICTIONARY_PARTITION_CHANNEL_20_PERCENT       | 1996.95   | 928.448   | -53.50669771  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0.2      | 256            | 8192          | BIGINT_DICTIONARY_PARTITION_CHANNEL_50_PERCENT       | 1971.498  | 1037.014  | -47.39969303  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0.2      | 256            | 8192          | BIGINT_DICTIONARY_PARTITION_CHANNEL_80_PERCENT       | 1862.019  | 1094.6    | -41.21434851  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0.2      | 256            | 8192          | BIGINT_DICTIONARY_PARTITION_CHANNEL_100_PERCENT      | 1920.265  | 1144.75   | -40.38583216  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0.2      | 256            | 8192          | RLE_PARTITION_BIGINT                                 | 3052.618  | 1472.632  | -51.7583923   |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0.2      | 256            | 8192          | RLE_PARTITION_NULL_BIGINT                            | 12.411    | 6.855     | -44.76673918  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0.2      | 256            | 8192          | LONG_DECIMAL                                         | 4715.343  | 2281.85   | -51.60797422  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0.2      | 256            | 8192          | INTEGER                                              | 3594.349  | 1698.87   | -52.7349737   |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0.2      | 256            | 8192          | SMALLINT                                             | 3357.586  | 1680.401  | -49.95210845  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0.2      | 256            | 8192          | BOOLEAN                                              | 2031.068  | 1238.094  | -39.04221818  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0.2      | 256            | 8192          | VARCHAR                                              | 9406.932  | 5580.815  | -40.67337789  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0.2      | 256            | 8192          | ARRAY_BIGINT                                         | 1792.839  | 1435.39   | -19.93759618  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0.2      | 256            | 8192          | ARRAY_VARCHAR                                        | 4074.899  | 3112.924  | -23.60733358  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0.2      | 256            | 8192          | ARRAY_ARRAY_BIGINT                                   | 4832.775  | 3708.222  | -23.2693018   |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0.2      | 256            | 8192          | MAP_BIGINT_BIGINT                                    | 4504.912  | 3548.566  | -21.22896074  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0.2      | 256            | 8192          | MAP_BIGINT_MAP_BIGINT_BIGINT                         | 11968.497 | 9777.244  | -18.30850607  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0.2      | 256            | 8192          | ROW_BIGINT_BIGINT                                    | 2252.62   | 1376.857  | -38.87752928  |
| BenchmarkPartitionedOutputOperator.addPage | 2            | FALSE             | 0.2      | 256            | 8192          | ROW_ARRAY_BIGINT_ARRAY_BIGINT                        | 4835.638  | 3045.78   | -37.01389558  |

Is this change a fix, improvement, new feature, refactoring, or other?

improvement

Is this a change to the core query engine, a connector, client library, or the SPI interfaces? (be specific)

core query engine.,PartitionedOutputOperator.

How would you describe this change to a non-technical end user or system administrator?

Improved partitioned exchange by going column-wise instead of row-wise.

Related issues, pull requests, and links

Documentation

(X ) No documentation is needed.
( ) Sufficient documentation is included in this PR.
( ) Documentation PR is available with #prnumber.
( ) Documentation issue #issuenumber is filed, and can be handled later.

Release notes

( ) No release notes entries required.
(X ) Release notes entries required with the following suggested text:
Improved partitioned exchange by going column-wise instead of row-wise.

Copy link
Copy Markdown
Member

@skrzypo987 skrzypo987 left a comment

Choose a reason for hiding this comment

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

LGTM % comments

Share some microbenchmark results with different null rates

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Put this below final fields

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I don't think this comment is needed here

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

this is copied from the original implementation, also IMO it should stay if it affects performance

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Move this method next to partitionPageByRow

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Move this up

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

That is not always true. A block may have a giant dictionary and use only a small subset of values. Please add a note that this is only a heuristic

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

we can't have giant dictionary blocks here as the dictionary size is limited by page size by the if below.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

nit: in the future we could reuse dictionaries between pages

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Extract those constants

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

unless we are going to reuse them, its way easier to read if we have the values directly here with comments.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

If dictionary size is almost as big as the block size it will still be slower. Consider adding a coefficient here. Somewhere around 2 probably

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

it's not slower. it's a lot faster (to my surprise)

dictionary
Benchmark                                   (channelCount)  (enableCompression)  (nullRate)  (partitionCount)  (positionCount)                                                   (type)  Mode  Cnt    Score    Error  Units
BenchmarkPartitionedOutputOperator.addPage               1                false         0.2                16             8192           BIGINT_DICTIONARY_PARTITION_CHANNEL_80_PERCENT  avgt   10  575.579 ± 17.971  ms/op
BenchmarkPartitionedOutputOperator.addPage               1                false         0.2                16             8192  BIGINT_DICTIONARY_PARTITION_CHANNEL_100_PERCENT_MINUS_1  avgt   10  569.529 ± 29.685  ms/op

generic
Benchmark                                   (channelCount)  (enableCompression)  (nullRate)  (partitionCount)  (positionCount)                                                   (type)  Mode  Cnt    Score    Error  Units
BenchmarkPartitionedOutputOperator.addPage               1                false         0.2                16             8192           BIGINT_DICTIONARY_PARTITION_CHANNEL_80_PERCENT  avgt   10  688.153 ± 24.111  ms/op
BenchmarkPartitionedOutputOperator.addPage               1                false         0.2                16             8192  BIGINT_DICTIONARY_PARTITION_CHANNEL_100_PERCENT_MINUS_1  avgt   10  690.021 ±  5.662  ms/op


Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

exception?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

see createAppender above

Copy link
Copy Markdown
Member Author

@lukasz-stec lukasz-stec left a comment

Choose a reason for hiding this comment

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

comments answered or addressed

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

see createAppender above

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

this is copied from the original implementation, also IMO it should stay if it affects performance

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

unless we are going to reuse them, its way easier to read if we have the values directly here with comments.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

it's not slower. it's a lot faster (to my surprise)

dictionary
Benchmark                                   (channelCount)  (enableCompression)  (nullRate)  (partitionCount)  (positionCount)                                                   (type)  Mode  Cnt    Score    Error  Units
BenchmarkPartitionedOutputOperator.addPage               1                false         0.2                16             8192           BIGINT_DICTIONARY_PARTITION_CHANNEL_80_PERCENT  avgt   10  575.579 ± 17.971  ms/op
BenchmarkPartitionedOutputOperator.addPage               1                false         0.2                16             8192  BIGINT_DICTIONARY_PARTITION_CHANNEL_100_PERCENT_MINUS_1  avgt   10  569.529 ± 29.685  ms/op

generic
Benchmark                                   (channelCount)  (enableCompression)  (nullRate)  (partitionCount)  (positionCount)                                                   (type)  Mode  Cnt    Score    Error  Units
BenchmarkPartitionedOutputOperator.addPage               1                false         0.2                16             8192           BIGINT_DICTIONARY_PARTITION_CHANNEL_80_PERCENT  avgt   10  688.153 ± 24.111  ms/op
BenchmarkPartitionedOutputOperator.addPage               1                false         0.2                16             8192  BIGINT_DICTIONARY_PARTITION_CHANNEL_100_PERCENT_MINUS_1  avgt   10  690.021 ±  5.662  ms/op


Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

we can't have giant dictionary blocks here as the dictionary size is limited by page size by the if below.

@electrum
Copy link
Copy Markdown
Member

We don't need the PagePartitioner interface since there is only one implementation, so please also remove it by reverting 6058b29

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Revert 6058b29, then we don't need this factory method

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

done

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I think this is wrong. You can check for FixedWithType and use the size to know if it's 1/2/4/8/16. This will remove many cases below, and handle IpAddressType that is missed. I think all of the SlicePositionsAppender checks can be replaced with VariableWidthType.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

I used FixedWithType and VariableWidthType. It's a lot cleaner. I also added Int96PositionsAppender

Copy link
Copy Markdown
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 interface, since there is only one implementation.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

removed PositionsAppenderFactory interface and renamed IsolatedPositionsAppenderFactory to PositionsAppenderFactory

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Initialize in the field declaration

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

moved to the LocalExecutionPlanner due to 6058b29 revert

Static pollution can fail if a code path is chosen
based on the benchmark parameters since it only
pollutes one code path and not necessarily the one
under test
Copy link
Copy Markdown
Member Author

@lukasz-stec lukasz-stec left a comment

Choose a reason for hiding this comment

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

I reverted 6058b29 and rebased on top of it.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

moved to the LocalExecutionPlanner due to 6058b29 revert

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

done

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

I used FixedWithType and VariableWidthType. It's a lot cleaner. I also added Int96PositionsAppender

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

removed PositionsAppenderFactory interface and renamed IsolatedPositionsAppenderFactory to PositionsAppenderFactory

@lukasz-stec lukasz-stec requested a review from electrum February 24, 2022 12:21
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Can we keep it in io.trino.operator.output and call this class just PagePartitioner ?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Yeah, makes sense.
It also then makes sense to move PositionsAppender class + factory

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

ping, undo

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

done.

Copy link
Copy Markdown
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.

lgtm % comments

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

nit: in the future we could reuse dictionaries between pages

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

remaind me again why we couldn't just isolate this guy (type.appendTo intuitively should be inlined since it's called from single isolated callsite). Please add comment in code.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

actually, we should isolate TypedPositionsAppender. It may or may not help, depending on jit decisions but it won't hurt. I'll fix that.

Why we can't use TypedPositionsAppender for everything? Because Type.appendTo method uses multiple Block types (Dict, RLe, normal) so the calls to Block.IsNull or Block.getLong are mega-morphic and thus Type method body uses virtual calls.
If the Type.appendTo body is inlined in the (isolated) PositionsAppender. appendTo loop, the the call site is not mega-morphic anymore and this works well, but this depends on the inlining decision that is influenced by other factors like compiled method size, byte code size, order of compilation (including the pollution state at the compilation time) etc. and in my experiments it was not happening, even for simple types.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

I double-checked the LongPositionsAppender vs isolated TypedPositionsAppender.

TypedPositionsAppender
Benchmark                                        (channelCount)  (enableCompression)  (nullRate)  (partitionCount)  (positionCount)  (type)  Mode  Cnt     Score    Error  Units
BenchmarkPartitionedOutputOperator.addPage                    1                false         0.2                16             8192  BIGINT  avgt   10  1349.558 ± 16.764  ms/op

vs
LongPositionsAppender
Benchmark                                        (channelCount)  (enableCompression)  (nullRate)  (partitionCount)  (positionCount)  (type)  Mode  Cnt     Score    Error  Units
BenchmarkPartitionedOutputOperator.addPage                    1                false         0.2                16             8192  BIGINT  avgt   10  1022.218 ± 17.139  ms/op

The reason for the perf difference is that although most of the AbstractLongType.appendTo is inlined into TypedPositionsAppender, there is still a virtual call to Block.isNull (see the jitwatch call chain screens below). The reason for the inline failure is <inline_fail reason="virtual call"/>

    <parse method="1259" stamp="30.717" uses="26103.000000">
      <observe total="4" count="4" trap="class_check"/>
      <observe total="4" count="4" trap="bimorphic_or_optimized_type_check"/>
      <bc code="185" bci="2"/>
      <klass name="io.trino.spi.block.LongArrayBlock" flags="1" id="1266"/>
      <klass name="io.trino.spi.block.DictionaryBlock" flags="1" id="1267"/>
      <type name="boolean" id="1101"/>
      <method bytes="0" name="isNull" flags="1025" holder="1246" arguments="1107" id="1260" iicount="1" return="1101"/>
      <call receiver_count="22776" virtual="1" receiver2="1267" receiver2_count="8192" method="1260" inline="1" receiver="1266" count="39160" prof_factor="0.662378"/>
      <inline_fail reason="virtual call"/>

The TypedPositionsAppender isolation is forced with code below, that is used per input Block class but still, there are DictionaryBlock calls there even though dictionary is not part of the benchmarked type (but used to pollute the profile)

    private PositionsAppender createAppender(Type type)
    {
        Class<? extends PositionsAppender> appenderClass = findDedicatedAppenderClassFor(type);

        if (***appenderClass == null || true***) {
            return isolateTypeAppender(type);
        }

        return isolateAppender(appenderClass);
    }

TypedPositionsAppender call chain
TypedPositionsAppender_call_chain

LongPositionsAppender call chain - mostly inlined, except for growCapacity
LongPositionsAppender_call_chain

Copy link
Copy Markdown
Member Author

@lukasz-stec lukasz-stec left a comment

Choose a reason for hiding this comment

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

most comments addressed.
I'm waiting to rename ColumnarPagePartitioner to PagePartitioner and move the classes to io.trino.operator.output for most of the comments to be resolved to not lose conversation handles in github.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

actually, we should isolate TypedPositionsAppender. It may or may not help, depending on jit decisions but it won't hurt. I'll fix that.

Why we can't use TypedPositionsAppender for everything? Because Type.appendTo method uses multiple Block types (Dict, RLe, normal) so the calls to Block.IsNull or Block.getLong are mega-morphic and thus Type method body uses virtual calls.
If the Type.appendTo body is inlined in the (isolated) PositionsAppender. appendTo loop, the the call site is not mega-morphic anymore and this works well, but this depends on the inlining decision that is influenced by other factors like compiled method size, byte code size, order of compilation (including the pollution state at the compilation time) etc. and in my experiments it was not happening, even for simple types.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

I double-checked the LongPositionsAppender vs isolated TypedPositionsAppender.

TypedPositionsAppender
Benchmark                                        (channelCount)  (enableCompression)  (nullRate)  (partitionCount)  (positionCount)  (type)  Mode  Cnt     Score    Error  Units
BenchmarkPartitionedOutputOperator.addPage                    1                false         0.2                16             8192  BIGINT  avgt   10  1349.558 ± 16.764  ms/op

vs
LongPositionsAppender
Benchmark                                        (channelCount)  (enableCompression)  (nullRate)  (partitionCount)  (positionCount)  (type)  Mode  Cnt     Score    Error  Units
BenchmarkPartitionedOutputOperator.addPage                    1                false         0.2                16             8192  BIGINT  avgt   10  1022.218 ± 17.139  ms/op

The reason for the perf difference is that although most of the AbstractLongType.appendTo is inlined into TypedPositionsAppender, there is still a virtual call to Block.isNull (see the jitwatch call chain screens below). The reason for the inline failure is <inline_fail reason="virtual call"/>

    <parse method="1259" stamp="30.717" uses="26103.000000">
      <observe total="4" count="4" trap="class_check"/>
      <observe total="4" count="4" trap="bimorphic_or_optimized_type_check"/>
      <bc code="185" bci="2"/>
      <klass name="io.trino.spi.block.LongArrayBlock" flags="1" id="1266"/>
      <klass name="io.trino.spi.block.DictionaryBlock" flags="1" id="1267"/>
      <type name="boolean" id="1101"/>
      <method bytes="0" name="isNull" flags="1025" holder="1246" arguments="1107" id="1260" iicount="1" return="1101"/>
      <call receiver_count="22776" virtual="1" receiver2="1267" receiver2_count="8192" method="1260" inline="1" receiver="1266" count="39160" prof_factor="0.662378"/>
      <inline_fail reason="virtual call"/>

The TypedPositionsAppender isolation is forced with code below, that is used per input Block class but still, there are DictionaryBlock calls there even though dictionary is not part of the benchmarked type (but used to pollute the profile)

    private PositionsAppender createAppender(Type type)
    {
        Class<? extends PositionsAppender> appenderClass = findDedicatedAppenderClassFor(type);

        if (***appenderClass == null || true***) {
            return isolateTypeAppender(type);
        }

        return isolateAppender(appenderClass);
    }

TypedPositionsAppender call chain
TypedPositionsAppender_call_chain

LongPositionsAppender call chain - mostly inlined, except for growCapacity
LongPositionsAppender_call_chain

@lukasz-stec lukasz-stec requested a review from sopel39 February 28, 2022 17:17
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

ping, undo

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Let's add some comment here why isolateTypeAppender(type); is not sufficient for primitive types.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Extended class comment. PTAL

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

That should be Class<? extends Block>. You should extract block types from all children using io.trino.spi.block.Block#getChildren

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Do you mean List< Class<? extends Block>>? This version does not support complex types like RowType or MapType so this won't help.
For RowType support, this would probably be some kind of tree unless we don't care about the lower level nesting.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

what about handling mayHaveNull here and in other places?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

added separate commit (could be squshed if we decide to keep it). Seems to help relatively a lot in tpcds/tpch
cpoo_sf1000_orc_part_mayHaveNull.pdf

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

nit: Theoretically -> Ideally

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

remove. I dont think it matters. Branch prediction would work the same

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

removed (dedicated PositionsAppenders are anyway in cases where this could have impact)

@sopel39
Copy link
Copy Markdown
Member

sopel39 commented Mar 3, 2022

mind automation. Either it's (new) flakynes or something is broken (TestHiveDynamicPartitionPruningTest)

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

return Optional.ofNullable(findDedicatedAppenderClassFor(type))
        .map(this::isolateAppender)
        .orElseGet(() -> isolateTypeAppender(type));

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

done

Column-wise approach works in two stages.
First it divides the input positions to output partitions.
Then, for each partition and column,
all values in the give column for the selected positions
for the given partition
are copied to the output buffer.

Benchmark                                   channelCount  enableCompression  nullRate  partitionCount  positionCount  type                                             baseline   columnar   columnar %
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0         2               8192           BIGINT                                           1302.926   769.102    -40.97116797
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0         2               8192           BIGINT_SKEWED_HASH                               1936.168   1118.931   -42.20899219
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0         2               8192           DICTIONARY_BIGINT                                1206.206   650.893    -46.03799019
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0         2               8192           RLE_BIGINT                                       952.319    479.22     -49.67862659
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0         2               8192           BIGINT_PARTITION_CHANNEL_20_PERCENT              888.163    560.123    -36.93466177
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0         2               8192           BIGINT_DICTIONARY_PARTITION_CHANNEL_20_PERCENT   1114.431   498.424    -55.27547242
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0         2               8192           BIGINT_DICTIONARY_PARTITION_CHANNEL_50_PERCENT   1128.77    546.881    -51.55071449
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0         2               8192           BIGINT_DICTIONARY_PARTITION_CHANNEL_80_PERCENT   1328.122   766.677    -42.27360137
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0         2               8192           BIGINT_DICTIONARY_PARTITION_CHANNEL_100_PERCENT  1406.781   947        -32.6831966
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0         2               8192           RLE_PARTITION_BIGINT                             1780.045   572.681    -67.82772346
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0         2               8192           RLE_PARTITION_NULL_BIGINT                        6.281      2.675      -57.41124025
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0         2               8192           LONG_DECIMAL                                     2524.384   1786.068   -29.24737282
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0         2               8192           INTEGER                                          1357.94    770.557    -43.25544575
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0         2               8192           SMALLINT                                         1376.242   776.705    -43.56334133
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0         2               8192           BOOLEAN                                          1273.884   705.885    -44.58796876
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0         2               8192           VARCHAR                                          3407.343   3008.769   -11.69750154
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0         2               8192           ARRAY_BIGINT                                     599.536    472.668    -21.1610312
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0         2               8192           ARRAY_VARCHAR                                    1637.497   1534.025   -6.31891234
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0         2               8192           ARRAY_ARRAY_BIGINT                               1958.92    1740.14    -11.16839891
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0         2               8192           MAP_BIGINT_BIGINT                                2623.346   1863.795   -28.95351967
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0         2               8192           MAP_BIGINT_MAP_BIGINT_BIGINT                     5665.363   5628.05    -0.6586162264
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0         2               8192           ROW_BIGINT_BIGINT                                710.468    503.575    -29.12066413
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0         2               8192           ROW_ARRAY_BIGINT_ARRAY_BIGINT                    1617.816   1462.798   -9.581930207
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0         16              8192           BIGINT                                           1444.293   831.347    -42.43917266
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0         16              8192           BIGINT_SKEWED_HASH                               1478.507   1129.366   -23.61442996
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0         16              8192           DICTIONARY_BIGINT                                1058.473   598.475    -43.45864278
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0         16              8192           RLE_BIGINT                                       987.504    529.149    -46.41550819
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0         16              8192           BIGINT_PARTITION_CHANNEL_20_PERCENT              785.252    583.389    -25.70677948
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0         16              8192           BIGINT_DICTIONARY_PARTITION_CHANNEL_20_PERCENT   1092.184   523.947    -52.02758876
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0         16              8192           BIGINT_DICTIONARY_PARTITION_CHANNEL_50_PERCENT   1111.695   566.813    -49.01362334
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0         16              8192           BIGINT_DICTIONARY_PARTITION_CHANNEL_80_PERCENT   1342.185   845.712    -36.98990825
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0         16              8192           BIGINT_DICTIONARY_PARTITION_CHANNEL_100_PERCENT  1439.271   929.554    -35.4149427
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0         16              8192           RLE_PARTITION_BIGINT                             1752.947   586.828    -66.52334611
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0         16              8192           RLE_PARTITION_NULL_BIGINT                        6.81       2.701      -60.33773862
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0         16              8192           LONG_DECIMAL                                     1829.298   1233.125   -32.5902614
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0         16              8192           INTEGER                                          1443.725   741.839    -48.61632236
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0         16              8192           SMALLINT                                         1295.63    872.862    -32.6303034
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0         16              8192           BOOLEAN                                          1187.705   788.527    -33.60918747
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0         16              8192           VARCHAR                                          3491.593   2954.383   -15.38581387
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0         16              8192           ARRAY_BIGINT                                     752.269    458.261    -39.08282808
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0         16              8192           ARRAY_VARCHAR                                    1970.084   1583.343   -19.6306858
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0         16              8192           ARRAY_ARRAY_BIGINT                               2062.881   1718.861   -16.67667694
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0         16              8192           MAP_BIGINT_BIGINT                                2325.006   1616.14    -30.48878153
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0         16              8192           MAP_BIGINT_MAP_BIGINT_BIGINT                     7450.894   6816.993   -8.507717329
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0         16              8192           ROW_BIGINT_BIGINT                                710.563    641.962    -9.6544571
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0         16              8192           ROW_ARRAY_BIGINT_ARRAY_BIGINT                    1666.879   1349.303   -19.05213276
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0         256             8192           BIGINT                                           2127.969   1162.371   -45.37650689
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0         256             8192           BIGINT_SKEWED_HASH                               1744.494   1225.401   -29.75607827
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0         256             8192           DICTIONARY_BIGINT                                1165.121   795.747    -31.70263003
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0         256             8192           RLE_BIGINT                                       1003.777   542.223    -45.98172702
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0         256             8192           BIGINT_PARTITION_CHANNEL_20_PERCENT              911.041    620.684    -31.87090372
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0         256             8192           BIGINT_DICTIONARY_PARTITION_CHANNEL_20_PERCENT   1067.159   509.559    -52.25088295
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0         256             8192           BIGINT_DICTIONARY_PARTITION_CHANNEL_50_PERCENT   1128.943   586.323    -48.06442841
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0         256             8192           BIGINT_DICTIONARY_PARTITION_CHANNEL_80_PERCENT   1339.027   841.835    -37.13084202
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0         256             8192           BIGINT_DICTIONARY_PARTITION_CHANNEL_100_PERCENT  1104.041   1006.807   -8.807100461
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0         256             8192           RLE_PARTITION_BIGINT                             1731.372   609.43     -64.80074762
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0         256             8192           RLE_PARTITION_NULL_BIGINT                        7.116      3.624      -49.07251265
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0         256             8192           LONG_DECIMAL                                     2633.272   1375.594   -47.76103646
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0         256             8192           INTEGER                                          2009.192   1045.348   -47.97172197
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0         256             8192           SMALLINT                                         1933.012   959.111    -50.38256358
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0         256             8192           BOOLEAN                                          1207.247   753.839    -37.55718589
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0         256             8192           VARCHAR                                          5700.359   3255.2     -42.89482469
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0         256             8192           ARRAY_BIGINT                                     938.458    766.523    -18.3210117
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0         256             8192           ARRAY_VARCHAR                                    2368.788   1904.359   -19.60618679
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0         256             8192           ARRAY_ARRAY_BIGINT                               2781.737   2155.849   -22.49989844
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0         256             8192           MAP_BIGINT_BIGINT                                2349.572   1943.247   -17.29357517
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0         256             8192           MAP_BIGINT_MAP_BIGINT_BIGINT                     7496.46    6325.078   -15.62580205
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0         256             8192           ROW_BIGINT_BIGINT                                1160.061   836.216    -27.91620441
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0         256             8192           ROW_ARRAY_BIGINT_ARRAY_BIGINT                    2697.067   1822.442   -32.42874574
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0.2       2               8192           BIGINT                                           1646.478   1270.516   -22.83431664
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0.2       2               8192           BIGINT_SKEWED_HASH                               1919.47    1646.059   -14.24408821
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0.2       2               8192           DICTIONARY_BIGINT                                1226.175   919.27     -25.02946154
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0.2       2               8192           RLE_BIGINT                                       993.583    546.51     -44.99603959
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0.2       2               8192           BIGINT_PARTITION_CHANNEL_20_PERCENT              942.063    765.762    -18.7143535
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0.2       2               8192           BIGINT_DICTIONARY_PARTITION_CHANNEL_20_PERCENT   1079.083   692.897    -35.78834992
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0.2       2               8192           BIGINT_DICTIONARY_PARTITION_CHANNEL_50_PERCENT   1095.834   698.804    -36.23085248
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0.2       2               8192           BIGINT_DICTIONARY_PARTITION_CHANNEL_80_PERCENT   1326.996   981.428    -26.04137465
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0.2       2               8192           BIGINT_DICTIONARY_PARTITION_CHANNEL_100_PERCENT  1387.114   1199.907   -13.496151
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0.2       2               8192           RLE_PARTITION_BIGINT                             1875.813   916.654    -51.13297541
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0.2       2               8192           RLE_PARTITION_NULL_BIGINT                        6.857      3.915      -42.90506052
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0.2       2               8192           LONG_DECIMAL                                     2050.416   1582.807   -22.80556726
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0.2       2               8192           INTEGER                                          1530.588   1162.388   -24.05611438
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0.2       2               8192           SMALLINT                                         1516.703   1013.684   -33.1652934
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0.2       2               8192           BOOLEAN                                          1631.464   1240.743   -23.94910338
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0.2       2               8192           VARCHAR                                          3604.938   3643.791   1.077771657
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0.2       2               8192           ARRAY_BIGINT                                     808.011    725.302    -10.23612302
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0.2       2               8192           ARRAY_VARCHAR                                    1650.827   1505.909   -8.778509196
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0.2       2               8192           ARRAY_ARRAY_BIGINT                               2142.252   2048.516   -4.375582331
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0.2       2               8192           MAP_BIGINT_BIGINT                                1785.228   1689.082   -5.385642618
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0.2       2               8192           MAP_BIGINT_MAP_BIGINT_BIGINT                     4851.934   4461.389   -8.049264479
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0.2       2               8192           ROW_BIGINT_BIGINT                                837.225    661.3      -21.0128699
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0.2       2               8192           ROW_ARRAY_BIGINT_ARRAY_BIGINT                    1852.099   1772.665   -4.288863608
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0.2       16              8192           BIGINT                                           1515.336   1041.617   -31.26164758
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0.2       16              8192           BIGINT_SKEWED_HASH                               1907.812   1727.84    -9.433424258
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0.2       16              8192           DICTIONARY_BIGINT                                1043.224   656.817    -37.03969617
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0.2       16              8192           RLE_BIGINT                                       1012.265   597.133    -41.01020978
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0.2       16              8192           BIGINT_PARTITION_CHANNEL_20_PERCENT              948.128    790.254    -16.65112727
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0.2       16              8192           BIGINT_DICTIONARY_PARTITION_CHANNEL_20_PERCENT   1098.098   687.351    -37.40531355
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0.2       16              8192           BIGINT_DICTIONARY_PARTITION_CHANNEL_50_PERCENT   1093.862   746.08     -31.79395573
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0.2       16              8192           BIGINT_DICTIONARY_PARTITION_CHANNEL_80_PERCENT   1336.2     1016.64    -23.9155815
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0.2       16              8192           BIGINT_DICTIONARY_PARTITION_CHANNEL_100_PERCENT  1377.588   1192.294   -13.45061078
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0.2       16              8192           RLE_PARTITION_BIGINT                             1861.171   916.732    -50.74434321
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0.2       16              8192           RLE_PARTITION_NULL_BIGINT                        6.917      4.044      -41.53534769
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0.2       16              8192           LONG_DECIMAL                                     1806.737   1178.898   -34.74988335
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0.2       16              8192           INTEGER                                          1492.28    1012.088   -32.17841156
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0.2       16              8192           SMALLINT                                         1441.843   888.18     -38.3996732
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0.2       16              8192           BOOLEAN                                          1382.287   831.613    -39.83789184
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0.2       16              8192           VARCHAR                                          3161.59    2949.017   -6.723610588
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0.2       16              8192           ARRAY_BIGINT                                     709.124    577.973    -18.49479076
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0.2       16              8192           ARRAY_VARCHAR                                    1519.582   1438.652   -5.325806702
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0.2       16              8192           ARRAY_ARRAY_BIGINT                               2131.942   2087.158   -2.100619998
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0.2       16              8192           MAP_BIGINT_BIGINT                                1551.028   1293.686   -16.59170563
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0.2       16              8192           MAP_BIGINT_MAP_BIGINT_BIGINT                     4609.262   4658.954   1.078090158
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0.2       16              8192           ROW_BIGINT_BIGINT                                783.013    599.198    -23.4753446
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0.2       16              8192           ROW_ARRAY_BIGINT_ARRAY_BIGINT                    1696.338   1674.645   -1.278813538
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0.2       256             8192           BIGINT                                           2017.965   1251.385   -37.98777481
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0.2       256             8192           BIGINT_SKEWED_HASH                               1970.866   1815.443   -7.886025737
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0.2       256             8192           DICTIONARY_BIGINT                                1328.739   851.467    -35.91916847
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0.2       256             8192           RLE_BIGINT                                       997.416    626.612    -37.17646398
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0.2       256             8192           BIGINT_PARTITION_CHANNEL_20_PERCENT              936.802    773.944    -17.38446331
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0.2       256             8192           BIGINT_DICTIONARY_PARTITION_CHANNEL_20_PERCENT   1100.638   724.973    -34.13156733
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0.2       256             8192           BIGINT_DICTIONARY_PARTITION_CHANNEL_50_PERCENT   1097.292   770.055    -29.8222351
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0.2       256             8192           BIGINT_DICTIONARY_PARTITION_CHANNEL_80_PERCENT   1350.826   1051.77    -22.13875066
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0.2       256             8192           BIGINT_DICTIONARY_PARTITION_CHANNEL_100_PERCENT  1390.028   1218.119   -12.36730483
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0.2       256             8192           RLE_PARTITION_BIGINT                             1901.381   980.588    -48.42759026
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0.2       256             8192           RLE_PARTITION_NULL_BIGINT                        7.888      5.282      -33.03752535
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0.2       256             8192           LONG_DECIMAL                                     2578.739   1464.405   -43.21236077
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0.2       256             8192           INTEGER                                          2020.733   1298.996   -35.71659393
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0.2       256             8192           SMALLINT                                         1917.248   1129.529   -41.08592107
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0.2       256             8192           BOOLEAN                                          1376.727   976.403    -29.07795082
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0.2       256             8192           VARCHAR                                          5123.119   3301.373   -35.55931455
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0.2       256             8192           ARRAY_BIGINT                                     937.792    835.528    -10.90476353
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0.2       256             8192           ARRAY_VARCHAR                                    2061.161   1894.317   -8.094661213
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0.2       256             8192           ARRAY_ARRAY_BIGINT                               2522.042   2269.116   -10.02861967
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0.2       256             8192           MAP_BIGINT_BIGINT                                2142.333   1694.135   -20.92102395
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0.2       256             8192           MAP_BIGINT_MAP_BIGINT_BIGINT                     5453.217   5341.727   -2.044481267
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0.2       256             8192           ROW_BIGINT_BIGINT                                1102.601   808.415    -26.68109316
BenchmarkPartitionedOutputOperator.addPage  1             TRUE               0.2       256             8192           ROW_ARRAY_BIGINT_ARRAY_BIGINT                    2345.838   1876.885   -19.99085188
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0         2               8192           BIGINT                                           1328.014   782.884    -41.04851304
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0         2               8192           BIGINT_SKEWED_HASH                               1341.07    951.721    -29.03271268
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0         2               8192           DICTIONARY_BIGINT                                998.892    565.345    -43.40279029
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0         2               8192           RLE_BIGINT                                       989.367    549.45     -44.46449093
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0         2               8192           BIGINT_PARTITION_CHANNEL_20_PERCENT              818.097    566.987    -30.69440421
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0         2               8192           BIGINT_DICTIONARY_PARTITION_CHANNEL_20_PERCENT   1021.362   458.36     -55.12266953
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0         2               8192           BIGINT_DICTIONARY_PARTITION_CHANNEL_50_PERCENT   1021.036   521.528    -48.92168347
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0         2               8192           BIGINT_DICTIONARY_PARTITION_CHANNEL_80_PERCENT   1032.333   569.624    -44.8216806
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0         2               8192           BIGINT_DICTIONARY_PARTITION_CHANNEL_100_PERCENT  1016.136   637.31     -37.28103325
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0         2               8192           RLE_PARTITION_BIGINT                             1677.801   580.697    -65.38939958
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0         2               8192           RLE_PARTITION_NULL_BIGINT                        6.148      2.601      -57.69355888
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0         2               8192           LONG_DECIMAL                                     1609.268   1069.346   -33.55078209
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0         2               8192           INTEGER                                          1326.069   879.578    -33.67026904
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0         2               8192           SMALLINT                                         1302.886   849.126    -34.82729878
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0         2               8192           BOOLEAN                                          1300.278   801.554    -38.35518251
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0         2               8192           VARCHAR                                          2818.775   2802.964   -0.5609174198
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0         2               8192           ARRAY_BIGINT                                     556.795    493.318    -11.40042565
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0         2               8192           ARRAY_VARCHAR                                    1463.227   1289.521   -11.87143212
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0         2               8192           ARRAY_ARRAY_BIGINT                               1934.333   1855.516   -4.074634512
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0         2               8192           MAP_BIGINT_BIGINT                                1459.303   1071.631   -26.56555904
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0         2               8192           MAP_BIGINT_MAP_BIGINT_BIGINT                     4571.217   4710.173   3.039803186
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0         2               8192           ROW_BIGINT_BIGINT                                639.188    507.635    -20.58126873
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0         2               8192           ROW_ARRAY_BIGINT_ARRAY_BIGINT                    1479.139   1363.726   -7.802714958
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0         16              8192           BIGINT                                           1436.78    898.92     -37.43509793
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0         16              8192           BIGINT_SKEWED_HASH                               1334.748   1014.379   -24.00220866
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0         16              8192           DICTIONARY_BIGINT                                1065.134   622.869    -41.52200568
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0         16              8192           RLE_BIGINT                                       1010.447   562.927    -44.28930958
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0         16              8192           BIGINT_PARTITION_CHANNEL_20_PERCENT              799.241    627.254    -21.51879095
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0         16              8192           BIGINT_DICTIONARY_PARTITION_CHANNEL_20_PERCENT   1039.015   458.651    -55.85713392
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0         16              8192           BIGINT_DICTIONARY_PARTITION_CHANNEL_50_PERCENT   1042.339   551.893    -47.05244647
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0         16              8192           BIGINT_DICTIONARY_PARTITION_CHANNEL_80_PERCENT   1030.947   606.992    -41.12287053
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0         16              8192           BIGINT_DICTIONARY_PARTITION_CHANNEL_100_PERCENT  1028.115   667.305    -35.09432311
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0         16              8192           RLE_PARTITION_BIGINT                             1634.18    591.4      -63.81059614
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0         16              8192           RLE_PARTITION_NULL_BIGINT                        6.011      2.579      -57.09532524
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0         16              8192           LONG_DECIMAL                                     1751.223   1306.027   -25.42200508
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0         16              8192           INTEGER                                          1428.153   938.248    -34.30339747
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0         16              8192           SMALLINT                                         1425.804   932.788    -34.5781047
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0         16              8192           BOOLEAN                                          1276.056   897.798    -29.64274295
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0         16              8192           VARCHAR                                          3239.605   3084.066   -4.801171748
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0         16              8192           ARRAY_BIGINT                                     587.28     525.919    -10.4483381
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0         16              8192           ARRAY_VARCHAR                                    1594.76    1464.104   -8.192831523
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0         16              8192           ARRAY_ARRAY_BIGINT                               2004.263   1892.049   -5.59876623
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0         16              8192           MAP_BIGINT_BIGINT                                1596.031   1391.183   -12.83483842
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0         16              8192           MAP_BIGINT_MAP_BIGINT_BIGINT                     5044.242   4569.822   -9.405179212
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0         16              8192           ROW_BIGINT_BIGINT                                732.507    537.054    -26.68274842
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0         16              8192           ROW_ARRAY_BIGINT_ARRAY_BIGINT                    1519.684   1454.59    -4.283390494
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0         256             8192           BIGINT                                           2142.286   1153.369   -46.16176365
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0         256             8192           BIGINT_SKEWED_HASH                               1356.356   1017.215   -25.0038338
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0         256             8192           DICTIONARY_BIGINT                                1424.596   850.085    -40.32799474
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0         256             8192           RLE_BIGINT                                       996.244    631.306    -36.63138749
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0         256             8192           BIGINT_PARTITION_CHANNEL_20_PERCENT              820.281    635.856    -22.48314907
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0         256             8192           BIGINT_DICTIONARY_PARTITION_CHANNEL_20_PERCENT   1052.514   516.466    -50.93024891
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0         256             8192           BIGINT_DICTIONARY_PARTITION_CHANNEL_50_PERCENT   1105.52    580.888    -47.45567697
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0         256             8192           BIGINT_DICTIONARY_PARTITION_CHANNEL_80_PERCENT   1041.5     621.096    -40.36524244
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0         256             8192           BIGINT_DICTIONARY_PARTITION_CHANNEL_100_PERCENT  1037.605   704.192    -32.13294076
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0         256             8192           RLE_PARTITION_BIGINT                             1711.72    622.791    -63.61607039
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0         256             8192           RLE_PARTITION_NULL_BIGINT                        6.876      3.74       -45.60791158
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0         256             8192           LONG_DECIMAL                                     2703.82    1629.277   -39.7416618
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0         256             8192           INTEGER                                          2097.015   1232.037   -41.24805974
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0         256             8192           SMALLINT                                         1970.243   1202.984   -38.94235381
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0         256             8192           BOOLEAN                                          1300.563   955.816    -26.5075202
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0         256             8192           VARCHAR                                          5433.172   3729.668   -31.35376535
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0         256             8192           ARRAY_BIGINT                                     962.135    780.835    -18.84350949
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0         256             8192           ARRAY_VARCHAR                                    2287.687   2069.558   -9.534914523
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0         256             8192           ARRAY_ARRAY_BIGINT                               2740.952   2093.304   -23.62857868
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0         256             8192           MAP_BIGINT_BIGINT                                2376.493   1755.927   -26.11267948
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0         256             8192           MAP_BIGINT_MAP_BIGINT_BIGINT                     7145.292   6860.392   -3.987240829
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0         256             8192           ROW_BIGINT_BIGINT                                1148.814   737.52     -35.80161802
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0         256             8192           ROW_ARRAY_BIGINT_ARRAY_BIGINT                    2438.02    1730.604   -29.01600479
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0.2       2               8192           BIGINT                                           1542.505   1141.967   -25.96672296
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0.2       2               8192           BIGINT_SKEWED_HASH                               1528.385   1200.545   -21.45009274
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0.2       2               8192           DICTIONARY_BIGINT                                1050.792   758.367    -27.82900898
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0.2       2               8192           RLE_BIGINT                                       985.578    547.333    -44.46578556
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0.2       2               8192           BIGINT_PARTITION_CHANNEL_20_PERCENT              877.957    675.363    -23.0756176
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0.2       2               8192           BIGINT_DICTIONARY_PARTITION_CHANNEL_20_PERCENT   1074.513   589.388    -45.14836023
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0.2       2               8192           BIGINT_DICTIONARY_PARTITION_CHANNEL_50_PERCENT   1044.045   631.848    -39.48076951
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0.2       2               8192           BIGINT_DICTIONARY_PARTITION_CHANNEL_80_PERCENT   1040.564   627.667    -39.68011578
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0.2       2               8192           BIGINT_DICTIONARY_PARTITION_CHANNEL_100_PERCENT  1029.127   779.784    -24.22859375
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0.2       2               8192           RLE_PARTITION_BIGINT                             1850.428   867.953    -53.09447328
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0.2       2               8192           RLE_PARTITION_NULL_BIGINT                        6.78       3.874      -42.86135693
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0.2       2               8192           LONG_DECIMAL                                     1681.209   1185.421   -29.48996823
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0.2       2               8192           INTEGER                                          1486.483   1035.678   -30.32695295
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0.2       2               8192           SMALLINT                                         1393.511   953.533    -31.57334244
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0.2       2               8192           BOOLEAN                                          1445.677   991.316    -31.42894298
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0.2       2               8192           VARCHAR                                          2870.282   2633.568   -8.247064226
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0.2       2               8192           ARRAY_BIGINT                                     703.224    558.767    -20.54210323
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0.2       2               8192           ARRAY_VARCHAR                                    1255.166   1174.679   -6.412458591
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0.2       2               8192           ARRAY_ARRAY_BIGINT                               2006.519   1945.431   -3.044476529
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0.2       2               8192           MAP_BIGINT_BIGINT                                1439.195   1309.613   -9.003783365
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0.2       2               8192           MAP_BIGINT_MAP_BIGINT_BIGINT                     3808.236   3492.41    -8.293236028
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0.2       2               8192           ROW_BIGINT_BIGINT                                741.837    564.075    -23.96240684
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0.2       2               8192           ROW_ARRAY_BIGINT_ARRAY_BIGINT                    1549.318   1512.847   -2.354003503
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0.2       16              8192           BIGINT                                           1466.336   979.943    -33.17063756
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0.2       16              8192           BIGINT_SKEWED_HASH                               1574.268   1373.047   -12.78187704
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0.2       16              8192           DICTIONARY_BIGINT                                1023.141   655.652    -35.91772786
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0.2       16              8192           RLE_BIGINT                                       980.678    568.113    -42.06936426
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0.2       16              8192           BIGINT_PARTITION_CHANNEL_20_PERCENT              882.148    728.543    -17.41261104
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0.2       16              8192           BIGINT_DICTIONARY_PARTITION_CHANNEL_20_PERCENT   1034.492   650.021    -37.16519799
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0.2       16              8192           BIGINT_DICTIONARY_PARTITION_CHANNEL_50_PERCENT   1027.63    622.823    -39.392291
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0.2       16              8192           BIGINT_DICTIONARY_PARTITION_CHANNEL_80_PERCENT   1019.902   658.343    -35.4503668
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0.2       16              8192           BIGINT_DICTIONARY_PARTITION_CHANNEL_100_PERCENT  1039.249   796.849    -23.32453531
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0.2       16              8192           RLE_PARTITION_BIGINT                             1838.673   900.44     -51.02772489
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0.2       16              8192           RLE_PARTITION_NULL_BIGINT                        6.892      3.91       -43.26755659
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0.2       16              8192           LONG_DECIMAL                                     1768.704   1141.687   -35.45064635
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0.2       16              8192           INTEGER                                          1478.627   889.719    -39.82802965
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0.2       16              8192           SMALLINT                                         1431.79    858.757    -40.02214012
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0.2       16              8192           BOOLEAN                                          1347.694   940.269    -30.23126912
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0.2       16              8192           VARCHAR                                          2971.862   2761.666   -7.072872159
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0.2       16              8192           ARRAY_BIGINT                                     725.752    694.491    -4.307394261
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0.2       16              8192           ARRAY_VARCHAR                                    1340       1199.433   -10.49007463
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0.2       16              8192           ARRAY_ARRAY_BIGINT                               1997.005   1884.82    -5.61766245
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0.2       16              8192           MAP_BIGINT_BIGINT                                1496.776   1322.185   -11.66447084
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0.2       16              8192           MAP_BIGINT_MAP_BIGINT_BIGINT                     4043.786   3725.813   -7.863249935
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0.2       16              8192           ROW_BIGINT_BIGINT                                794.52     576.589    -27.42926547
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0.2       16              8192           ROW_ARRAY_BIGINT_ARRAY_BIGINT                    1608.529   1471.911   -8.493350135
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0.2       256             8192           BIGINT                                           1983.131   1426.8     -28.05316442
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0.2       256             8192           BIGINT_SKEWED_HASH                               1688.429   1351.925   -19.93000594
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0.2       256             8192           DICTIONARY_BIGINT                                1344.609   848.275    -36.91288694
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0.2       256             8192           RLE_BIGINT                                       989.584    617.285    -37.62176834
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0.2       256             8192           BIGINT_PARTITION_CHANNEL_20_PERCENT              873.076    756.496    -13.35278945
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0.2       256             8192           BIGINT_DICTIONARY_PARTITION_CHANNEL_20_PERCENT   1047.469   679.288    -35.14958438
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0.2       256             8192           BIGINT_DICTIONARY_PARTITION_CHANNEL_50_PERCENT   1056.427   675.651    -36.04375882
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0.2       256             8192           BIGINT_DICTIONARY_PARTITION_CHANNEL_80_PERCENT   1041.838   681.072    -34.62784041
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0.2       256             8192           BIGINT_DICTIONARY_PARTITION_CHANNEL_100_PERCENT  1033.718   816.641    -20.99963433
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0.2       256             8192           RLE_PARTITION_BIGINT                             1850.437   933.937    -49.52884103
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0.2       256             8192           RLE_PARTITION_NULL_BIGINT                        7.586      5.209      -31.33403638
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0.2       256             8192           LONG_DECIMAL                                     2475.471   1443.022   -41.70717411
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0.2       256             8192           INTEGER                                          2011.162   1267.454   -36.97902009
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0.2       256             8192           SMALLINT                                         1908.761   1130.535   -40.77126471
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0.2       256             8192           BOOLEAN                                          1361.54    870.647    -36.0542474
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0.2       256             8192           VARCHAR                                          4839.889   3281.086   -32.20741219
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0.2       256             8192           ARRAY_BIGINT                                     893.161    808.889    -9.435252995
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0.2       256             8192           ARRAY_VARCHAR                                    1912.328   1659.965   -13.19663782
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0.2       256             8192           ARRAY_ARRAY_BIGINT                               2296.046   2055.136   -10.49238561
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0.2       256             8192           MAP_BIGINT_BIGINT                                2138.706   1742.191   -18.53994892
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0.2       256             8192           MAP_BIGINT_MAP_BIGINT_BIGINT                     5432.889   5140.89    -5.374654259
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0.2       256             8192           ROW_BIGINT_BIGINT                                1082.421   771.412    -28.73272045
BenchmarkPartitionedOutputOperator.addPage  1             FALSE              0.2       256             8192           ROW_ARRAY_BIGINT_ARRAY_BIGINT                    2214.725   1695.168   -23.45921051
BenchmarkPartitionedOutputOperator.addPage  2             TRUE               0         2               8192           BIGINT                                           1863.551   1148.084   -38.39267077
BenchmarkPartitionedOutputOperator.addPage  2             TRUE               0         2               8192           BIGINT_SKEWED_HASH                               2207.817   1657.039   -24.94672339
BenchmarkPartitionedOutputOperator.addPage  2             TRUE               0         2               8192           DICTIONARY_BIGINT                                1656.253   1055.973   -36.24325511
BenchmarkPartitionedOutputOperator.addPage  2             TRUE               0         2               8192           RLE_BIGINT                                       1363.576   688.575    -49.50226463
BenchmarkPartitionedOutputOperator.addPage  2             TRUE               0         2               8192           BIGINT_PARTITION_CHANNEL_20_PERCENT              1228.092   873.406    -28.88106103
BenchmarkPartitionedOutputOperator.addPage  2             TRUE               0         2               8192           BIGINT_DICTIONARY_PARTITION_CHANNEL_20_PERCENT   1510.711   762.043    -49.55732764
BenchmarkPartitionedOutputOperator.addPage  2             TRUE               0         2               8192           BIGINT_DICTIONARY_PARTITION_CHANNEL_50_PERCENT   1534.493   836.388    -45.49417951
BenchmarkPartitionedOutputOperator.addPage  2             TRUE               0         2               8192           BIGINT_DICTIONARY_PARTITION_CHANNEL_80_PERCENT   1702.515   1143.947   -32.80840404
BenchmarkPartitionedOutputOperator.addPage  2             TRUE               0         2               8192           BIGINT_DICTIONARY_PARTITION_CHANNEL_100_PERCENT  1800.282   1265.429   -29.70940108
BenchmarkPartitionedOutputOperator.addPage  2             TRUE               0         2               8192           RLE_PARTITION_BIGINT                             2364.895   899.545    -61.96258185
BenchmarkPartitionedOutputOperator.addPage  2             TRUE               0         2               8192           RLE_PARTITION_NULL_BIGINT                        10.29      3.816      -62.9154519
BenchmarkPartitionedOutputOperator.addPage  2             TRUE               0         2               8192           LONG_DECIMAL                                     4256.45    3758.952   -11.68809689
BenchmarkPartitionedOutputOperator.addPage  2             TRUE               0         2               8192           INTEGER                                          1786.379   1131.209   -36.67586777
BenchmarkPartitionedOutputOperator.addPage  2             TRUE               0         2               8192           SMALLINT                                         1961.655   1113.842   -43.21927148
BenchmarkPartitionedOutputOperator.addPage  2             TRUE               0         2               8192           BOOLEAN                                          1723.534   995.049    -42.26693526
BenchmarkPartitionedOutputOperator.addPage  2             TRUE               0         2               8192           VARCHAR                                          6947.303   6214.733   -10.54466748
BenchmarkPartitionedOutputOperator.addPage  2             TRUE               0         2               8192           ARRAY_BIGINT                                     1032.977   978.331    -5.290146828
BenchmarkPartitionedOutputOperator.addPage  2             TRUE               0         2               8192           ARRAY_VARCHAR                                    3319.275   3043.291   -8.31458677
BenchmarkPartitionedOutputOperator.addPage  2             TRUE               0         2               8192           ARRAY_ARRAY_BIGINT                               4007.356   3653.61    -8.827416381
BenchmarkPartitionedOutputOperator.addPage  2             TRUE               0         2               8192           MAP_BIGINT_BIGINT                                3452.737   3560.543   3.122334542
BenchmarkPartitionedOutputOperator.addPage  2             TRUE               0         2               8192           MAP_BIGINT_MAP_BIGINT_BIGINT                     11520.933  11599.765  0.6842501384
BenchmarkPartitionedOutputOperator.addPage  2             TRUE               0         2               8192           ROW_BIGINT_BIGINT                                1131.367   1024.381   -9.45634794
BenchmarkPartitionedOutputOperator.addPage  2             TRUE               0         2               8192           ROW_ARRAY_BIGINT_ARRAY_BIGINT                    3361.872   2708.01    -19.44934251
BenchmarkPartitionedOutputOperator.addPage  2             TRUE               0         16              8192           BIGINT                                           2029.292   1300.127   -35.93199007
BenchmarkPartitionedOutputOperator.addPage  2             TRUE               0         16              8192           BIGINT_SKEWED_HASH                               2229.439   1514.66    -32.06093551
BenchmarkPartitionedOutputOperator.addPage  2             TRUE               0         16              8192           DICTIONARY_BIGINT                                1548.21    879.077    -43.21978285
BenchmarkPartitionedOutputOperator.addPage  2             TRUE               0         16              8192           RLE_BIGINT                                       1347.258   741.15     -44.98826505
BenchmarkPartitionedOutputOperator.addPage  2             TRUE               0         16              8192           BIGINT_PARTITION_CHANNEL_20_PERCENT              1266.302   890.737    -29.65840692
BenchmarkPartitionedOutputOperator.addPage  2             TRUE               0         16              8192           BIGINT_DICTIONARY_PARTITION_CHANNEL_20_PERCENT   1519.514   787.816    -48.15342274
BenchmarkPartitionedOutputOperator.addPage  2             TRUE               0         16              8192           BIGINT_DICTIONARY_PARTITION_CHANNEL_50_PERCENT   1583.208   869.901    -45.05453484
BenchmarkPartitionedOutputOperator.addPage  2             TRUE               0         16              8192           BIGINT_DICTIONARY_PARTITION_CHANNEL_80_PERCENT   1702.761   1149.379   -32.49909999
BenchmarkPartitionedOutputOperator.addPage  2             TRUE               0         16              8192           BIGINT_DICTIONARY_PARTITION_CHANNEL_100_PERCENT  1788.277   1317.585   -26.32097824
BenchmarkPartitionedOutputOperator.addPage  2             TRUE               0         16              8192           RLE_PARTITION_BIGINT                             2383.934   1007.899   -57.72118691
BenchmarkPartitionedOutputOperator.addPage  2             TRUE               0         16              8192           RLE_PARTITION_NULL_BIGINT                        8.474      3.914      -53.81165919
BenchmarkPartitionedOutputOperator.addPage  2             TRUE               0         16              8192           LONG_DECIMAL                                     2582.467   1945.5     -24.66505864
BenchmarkPartitionedOutputOperator.addPage  2             TRUE               0         16              8192           INTEGER                                          1930.602   1167.063   -39.54927012
BenchmarkPartitionedOutputOperator.addPage  2             TRUE               0         16              8192           SMALLINT                                         1964.057   1166.88    -40.58828232
BenchmarkPartitionedOutputOperator.addPage  2             TRUE               0         16              8192           BOOLEAN                                          1710.449   1107.672   -35.24086366
BenchmarkPartitionedOutputOperator.addPage  2             TRUE               0         16              8192           VARCHAR                                          6951.744   5737.327   -17.46924225
BenchmarkPartitionedOutputOperator.addPage  2             TRUE               0         16              8192           ARRAY_BIGINT                                     1584.935   792.682    -49.98646632
BenchmarkPartitionedOutputOperator.addPage  2             TRUE               0         16              8192           ARRAY_VARCHAR                                    3400.526   3122.428   -8.178087743
BenchmarkPartitionedOutputOperator.addPage  2             TRUE               0         16              8192           ARRAY_ARRAY_BIGINT                               3977.859   3871.471   -2.674504049
BenchmarkPartitionedOutputOperator.addPage  2             TRUE               0         16              8192           MAP_BIGINT_BIGINT                                3416.368   3007.709   -11.96179686
BenchmarkPartitionedOutputOperator.addPage  2             TRUE               0         16              8192           MAP_BIGINT_MAP_BIGINT_BIGINT                     12101.568  12336.407  1.94056671
BenchmarkPartitionedOutputOperator.addPage  2             TRUE               0         16              8192           ROW_BIGINT_BIGINT                                1167.105   961.313    -17.63268943
BenchmarkPartitionedOutputOperator.addPage  2             TRUE               0         16              8192           ROW_ARRAY_BIGINT_ARRAY_BIGINT                    3696.905   3036.086   -17.87492511
BenchmarkPartitionedOu…
Copy link
Copy Markdown
Member Author

@lukasz-stec lukasz-stec left a comment

Choose a reason for hiding this comment

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

mayHaveNull commit squashed. The rest of the comments were also addressed.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

removed (dedicated PositionsAppenders are anyway in cases where this could have impact)

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

done

Copy link
Copy Markdown
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.

lgtm

In the future, we might consider moving io.trino.spi.type.Type#appendTo to TypeManager which would allow us to overload different batch appendTo methods.
For example, we could have:

@BatchOperator(APPEND_TO)
void appendTo(@SqlType(StandardTypes.BIGINT) LongArrayBlock block, BlockBuilder builder) {
 ...
}

@BatchOperator(APPEND_TO)
void appendTo(@SqlType(StandardTypes.BIGINT) RunLengthEncoded block, BlockBuilder builder) {
 ...
}

@sopel39 sopel39 merged commit 1de0bb9 into trinodb:master Mar 4, 2022
@sopel39 sopel39 mentioned this pull request Mar 4, 2022
@github-actions github-actions bot added this to the 373 milestone Mar 4, 2022
@lukasz-stec
Copy link
Copy Markdown
Member Author

I also ran columnar page partitioner benchmarks on x86 and the gains are even better

label TPCH wall time TPC-DS wall time TPCH CPU time TPC-DS CPU time TPCH wall time % change TPC-DS wall time % change TPCH CPU time % change TPC-DS CPU time % change
0 baseline x86 993 1254 119332 154405 0 0 0 0
1 columnar poo x86 944 1208 110465 146709 -4.95 -3.6 -7.43 -4.98

cpoo_sf1000_orc_part_x86.pdf

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.

5 participants