viirya opened a new pull request, #5901:
URL: https://github.com/apache/datafusion-comet/pull/5901

   ## Which issue does this PR close?
   
   Closes #5900. Part of #5818; follows the matched normalization/hash 
benchmarks in #5822 and singleton optimization in #5887.
   
   ## Rationale for this change
   
   Normalizing multi-entry `map<string,int>` batches slices the key array and 
allocates Arrow sorting
   indices and prefix tuples for every row. Reuse the prefix-tuple buffer 
across rows to reduce this
   allocation overhead while preserving the exact permutation.
   
   ## What changes are included in this PR?
   
   - Specialize multi-entry `Utf8` keys with `Int32` values, reusing `(u32 
index, u32 prefix, u64 length)`
     scratch storage. Keep Arrow's comparator and tuple layout, including 
equal-key permutations.
     Scratch capacity grows with the largest row. The existing global index 
append and single `take` remain.
   - Preserve #5887's singleton eligibility check, batch dispatch and direct 
index append. Insert the
     multi-entry path into its const-generic helper; other key/value types 
retain Arrow validation.
   - Fill rebased offsets in bulk for all-empty visible batches while retaining 
map reconstruction.
   - Add wide/null/Unicode int-value fixtures and four tests for exact 
duplicate-key permutations,
     mixed singleton/multi-entry slices, physical entries under null maps, 
unsupported keys and empty
     visible slices. Retain all upstream tests and the existing 
null/schema/sorted-flag semantics.
   
   ## How are these changes tested?
   
   - All 16 map-sort tests passed (12 upstream tests retained unchanged, 4 
added).
   - Workspace/all-target Clippy with `-D warnings` passed.
   - `make format PROFILES=-Pspark-4.0` passed, using the existing profile that 
provides SemanticDB.
   - Release workspace/native-library build passed.
   - Fresh upstream and integrated release cohorts each completed all 122 
cases. All 18 full-run
     slowdown flags with CI lower bound above +1% received independent paired 
measurements, as did
     two wide-map wins. Two fallback cases still above +2% received 
reverse-order pairs.
   
   Matched 2–10-entry forward normalization improved about 66% (3x); matched 
2–50-entry cases improved
   28–39% in the full cohort and 33–39% in fresh pairs. No larger slowdown 
persisted across the
   confirmations. The int-key 16-entry fallback was +3.50% in a fresh pair and 
+1.99% in reverse order;
   small effects remain uncertain under observed process drift. The int-key 
4-entry case fell from
   +6.09% to +0.11% in reverse order. Initial singleton +8–9% flags did not 
reproduce: fresh matched
   singleton pairs were -0.08% and +1.72%. These are microbenchmarks, not 
end-to-end Spark measurements.
   
   ### Measurement cohort and limits
   
   Base: `4abfd95114d61ad454f9ee269be1615f469f24e2`, including merged singleton 
PR #5887 (`ca223a8d4`).
   All 122 baseline measurements completed before the integrated production 
source was applied.
   Both cohorts used byte-identical benchmark files, dependency manifests and 
lockfile.
   
   Apple M4 Max, 64 GB, Rust 1.97.1, release/thin LTO/codegen-units=1, no 
RUSTFLAGS override.
   Full cohorts: 50 samples, 1 s warmup, 2 s target measurement (Criterion 
extends long cases).
   Independent pairs: 100 samples, 3 s warmup, 5 s target measurement. No heavy 
build or benchmark ran
   concurrently. Narrow within-process CIs do not capture desktop/background 
and cross-process drift.
   All unfavorable original measurements are retained alongside confirmations.
   
   Inputs and correctness checks are untimed. Normalization output 
allocation/drop and combined
   struct reconstruction/drop are timed. Hash-buffer allocation is untimed and 
seed reset is timed.
   Hash-only forward/reversed cases use the same normalized input as repeated 
controls. Each batch
   has 8,192 visible rows; physical entries under null maps count toward entry 
rates. No phase subtraction
   is used. Hashing implementation and nested-hashing defaults are unchanged.
   
   <details>
   <summary>Complete integrated comparison (122 cases)</summary>
   
   Time is ms per 8,192-row batch, with 95% CI; unsupported-key and 
buffer-reset cases are per call.
   The change column is Criterion's cross-process mean estimate; confirmations 
follow below.
   
   | Case | Baseline ms (95% CI) | Integrated ms (95% CI) | Change % (95% CI) |
   |---|---:|---:|---:|
   | matched_maps/hash_buffer_seed_reset | 0.000297 [0.000290, 0.000303] | 
0.000263 [0.000256, 0.000270] | -12.62 [-15.17, -9.89] |
   | matched_maps/hash_only/map/0/forward | 0.004978 [0.004940, 0.005014] | 
0.004620 [0.004580, 0.004656] | -7.50 [-8.55, -6.38] |
   | matched_maps/hash_only/map/0/reversed | 0.004934 [0.004895, 0.004971] | 
0.004646 [0.004607, 0.004691] | -5.12 [-5.98, -4.21] |
   | matched_maps/hash_only/map/1/forward | 0.032509 [0.032211, 0.032795] | 
0.032108 [0.031790, 0.032468] | -1.43 [-3.03, 0.17] |
   | matched_maps/hash_only/map/1/reversed | 0.030791 [0.030709, 0.030898] | 
0.030644 [0.030586, 0.030703] | -2.11 [-3.12, -1.15] |
   | matched_maps/hash_only/map/10/forward | 0.352903 [0.347282, 0.359123] | 
0.341396 [0.337814, 0.345680] | -5.95 [-7.30, -4.58] |
   | matched_maps/hash_only/map/10/reversed | 0.333073 [0.331511, 0.334519] | 
0.360368 [0.355854, 0.364416] | 7.57 [6.15, 8.80] |
   | matched_maps/hash_only/map/50/forward | 2.165835 [2.150633, 2.181090] | 
2.248646 [2.216507, 2.280922] | 3.10 [1.67, 4.71] |
   | matched_maps/hash_only/map/50/reversed | 2.166743 [2.154227, 2.179776] | 
2.235745 [2.205941, 2.273575] | 5.81 [3.76, 7.92] |
   | matched_maps/hash_only/struct_map_int/0/forward | 0.012248 [0.012107, 
0.012398] | 0.011977 [0.011887, 0.012084] | -0.26 [-1.61, 1.14] |
   | matched_maps/hash_only/struct_map_int/0/reversed | 0.012756 [0.012627, 
0.012881] | 0.012039 [0.011928, 0.012167] | -6.78 [-7.75, -5.67] |
   | matched_maps/hash_only/struct_map_int/1/forward | 0.038521 [0.038220, 
0.038885] | 0.037884 [0.037690, 0.038159] | -2.68 [-3.61, -1.70] |
   | matched_maps/hash_only/struct_map_int/1/reversed | 0.037590 [0.037378, 
0.037797] | 0.039951 [0.039543, 0.040325] | 4.79 [3.61, 5.98] |
   | matched_maps/hash_only/struct_map_int/10/forward | 0.364487 [0.361603, 
0.367084] | 0.367201 [0.363984, 0.370435] | -1.40 [-2.65, -0.07] |
   | matched_maps/hash_only/struct_map_int/10/reversed | 0.343979 [0.340997, 
0.346947] | 0.357271 [0.353344, 0.361585] | 4.19 [3.00, 5.47] |
   | matched_maps/hash_only/struct_map_int/50/forward | 2.213356 [2.195088, 
2.232738] | 2.211575 [2.179998, 2.248343] | -0.17 [-1.79, 1.33] |
   | matched_maps/hash_only/struct_map_int/50/reversed | 2.139081 [2.130019, 
2.148116] | 2.243743 [2.219535, 2.271584] | 7.77 [6.19, 9.52] |
   | matched_maps/normalize_hash/map/0/forward | 0.011930 [0.011872, 0.011976] 
| 0.007811 [0.007772, 0.007854] | -34.53 [-34.97, -34.11] |
   | matched_maps/normalize_hash/map/0/reversed | 0.011863 [0.011806, 0.011928] 
| 0.007999 [0.007914, 0.008111] | -30.74 [-31.69, -29.79] |
   | matched_maps/normalize_hash/map/1/forward | 0.082434 [0.081518, 0.083587] 
| 0.077613 [0.076782, 0.078749] | -2.62 [-4.38, -0.83] |
   | matched_maps/normalize_hash/map/1/reversed | 0.097234 [0.096097, 0.098288] 
| 0.074317 [0.074074, 0.074615] | -23.75 [-24.44, -23.06] |
   | matched_maps/normalize_hash/map/10/forward | 2.082057 [2.070464, 2.093390] 
| 0.750409 [0.747988, 0.752879] | -63.81 [-64.06, -63.56] |
   | matched_maps/normalize_hash/map/10/reversed | 2.429893 [2.407186, 
2.453356] | 1.151531 [1.145534, 1.158021] | -53.15 [-53.53, -52.74] |
   | matched_maps/normalize_hash/map/50/forward | 5.477007 [5.436108, 5.520821] 
| 3.710618 [3.699270, 3.722581] | -32.25 [-32.82, -31.68] |
   | matched_maps/normalize_hash/map/50/reversed | 6.370159 [6.324398, 
6.414206] | 4.374540 [4.363505, 4.385494] | -31.33 [-31.83, -30.80] |
   | matched_maps/normalize_hash/struct_map_int/0/forward | 0.020538 [0.020326, 
0.020813] | 0.015627 [0.015430, 0.015867] | -25.25 [-26.27, -24.23] |
   | matched_maps/normalize_hash/struct_map_int/0/reversed | 0.021126 
[0.020736, 0.021448] | 0.016097 [0.015938, 0.016238] | -23.01 [-24.11, -21.86] |
   | matched_maps/normalize_hash/struct_map_int/1/forward | 0.088329 [0.088211, 
0.088437] | 0.082637 [0.082505, 0.082763] | -6.48 [-6.68, -6.26] |
   | matched_maps/normalize_hash/struct_map_int/1/reversed | 0.101194 
[0.099879, 0.102577] | 0.081745 [0.081589, 0.081884] | -20.14 [-20.98, -19.31] |
   | matched_maps/normalize_hash/struct_map_int/10/forward | 2.104292 
[2.087008, 2.120388] | 0.762873 [0.760500, 0.765230] | -63.93 [-64.21, -63.66] |
   | matched_maps/normalize_hash/struct_map_int/10/reversed | 2.343765 
[2.333059, 2.357974] | 1.213060 [1.199996, 1.230424] | -50.03 [-50.75, -49.33] |
   | matched_maps/normalize_hash/struct_map_int/50/forward | 5.573334 
[5.520074, 5.625929] | 3.727349 [3.714379, 3.742165] | -33.12 [-33.80, -32.43] |
   | matched_maps/normalize_hash/struct_map_int/50/reversed | 6.094283 
[6.059158, 6.132586] | 4.398988 [4.384451, 4.413022] | -27.82 [-28.32, -27.34] |
   | matched_maps/normalize_only/map/0/forward | 0.006960 [0.006917, 0.007002] 
| 0.003103 [0.003052, 0.003154] | -55.86 [-56.29, -55.45] |
   | matched_maps/normalize_only/map/0/reversed | 0.006939 [0.006907, 0.006970] 
| 0.003285 [0.003255, 0.003321] | -52.50 [-53.11, -51.90] |
   | matched_maps/normalize_only/map/1/forward | 0.047532 [0.047305, 0.047784] 
| 0.051704 [0.050974, 0.052802] | 8.58 [7.03, 10.66] |
   | matched_maps/normalize_only/map/1/reversed | 0.046676 [0.046159, 0.047362] 
| 0.051078 [0.050758, 0.051435] | 9.46 [8.08, 10.77] |
   | matched_maps/normalize_only/map/10/forward | 1.457805 [1.449019, 1.470317] 
| 0.492988 [0.489871, 0.496710] | -66.20 [-66.59, -65.69] |
   | matched_maps/normalize_only/map/10/reversed | 1.859864 [1.852003, 
1.868389] | 0.903327 [0.899307, 0.907138] | -51.74 [-52.04, -51.44] |
   | matched_maps/normalize_only/map/50/forward | 3.070098 [3.018114, 3.127601] 
| 1.835687 [1.820745, 1.852364] | -38.61 [-39.61, -37.60] |
   | matched_maps/normalize_only/map/50/reversed | 3.588305 [3.580530, 
3.596033] | 2.556989 [2.532958, 2.579918] | -28.33 [-28.84, -27.84] |
   | multi_entry_int_maps/hash_only/map/mixed_dense_null | 0.449289 [0.445058, 
0.454586] | 0.402165 [0.400495, 0.403981] | -9.89 [-10.52, -9.29] |
   | multi_entry_int_maps/hash_only/map/wide_dense_null | 0.617394 [0.614634, 
0.620249] | 0.556214 [0.553946, 0.558295] | -9.70 [-10.19, -9.20] |
   | multi_entry_int_maps/hash_only/map/wide_long_unicode | 71.502781 
[71.167283, 71.850570] | 64.300277 [64.174908, 64.432286] | -10.07 [-10.53, 
-9.61] |
   | multi_entry_int_maps/hash_only/map/wide_long_unicode_dense_null | 
36.097994 [35.900216, 36.308762] | 32.683120 [32.545423, 32.845109] | -9.46 
[-10.12, -8.78] |
   | multi_entry_int_maps/hash_only/map/wide_no_null | 1.700726 [1.686073, 
1.719461] | 1.486960 [1.482161, 1.492874] | -15.00 [-16.07, -13.91] |
   | multi_entry_int_maps/hash_only/map/wide_sparse_null | 1.727546 [1.708216, 
1.747878] | 1.511608 [1.504700, 1.518844] | -14.33 [-15.25, -13.38] |
   | multi_entry_int_maps/hash_only/struct_map_int/mixed_dense_null | 0.452555 
[0.449866, 0.455648] | 0.409470 [0.407853, 0.411273] | -9.53 [-10.37, -8.73] |
   | multi_entry_int_maps/hash_only/struct_map_int/wide_dense_null | 0.620534 
[0.616507, 0.624194] | 0.566632 [0.564718, 0.568522] | -9.13 [-9.75, -8.48] |
   | multi_entry_int_maps/hash_only/struct_map_int/wide_long_unicode | 
73.218033 [72.742804, 73.717389] | 64.374067 [64.246127, 64.511935] | -12.08 
[-12.70, -11.47] |
   | multi_entry_int_maps/hash_only/struct_map_int/wide_long_unicode_dense_null 
| 35.743625 [35.499035, 35.991249] | 32.728699 [32.555951, 32.932193] | -8.43 
[-9.27, -7.61] |
   | multi_entry_int_maps/hash_only/struct_map_int/wide_no_null | 1.686136 
[1.670163, 1.702652] | 1.496503 [1.490776, 1.504781] | -9.63 [-10.48, -8.76] |
   | multi_entry_int_maps/hash_only/struct_map_int/wide_sparse_null | 1.724639 
[1.709869, 1.739987] | 1.516817 [1.512161, 1.520917] | -11.60 [-12.12, -11.09] |
   | multi_entry_int_maps/normalize_hash/map/mixed_dense_null | 1.677325 
[1.659271, 1.695524] | 0.879415 [0.876691, 0.882169] | -48.38 [-48.97, -47.78] |
   | multi_entry_int_maps/normalize_hash/map/wide_dense_null | 3.492575 
[3.463381, 3.522336] | 1.770534 [1.764865, 1.775920] | -49.29 [-49.75, -48.83] |
   | multi_entry_int_maps/normalize_hash/map/wide_long_unicode | 98.993755 
[97.956763, 100.109657] | 85.089966 [84.857972, 85.343834] | -14.05 [-15.03, 
-13.11] |
   | multi_entry_int_maps/normalize_hash/map/wide_long_unicode_dense_null | 
62.323938 [61.782437, 62.892852] | 53.181282 [52.967561, 53.425551] | -14.67 
[-15.52, -13.85] |
   | multi_entry_int_maps/normalize_hash/map/wide_no_null | 4.377918 [4.356941, 
4.400787] | 2.601935 [2.594394, 2.610129] | -40.75 [-41.14, -40.38] |
   | multi_entry_int_maps/normalize_hash/map/wide_sparse_null | 4.341314 
[4.327330, 4.355079] | 2.719642 [2.711363, 2.728375] | -37.30 [-37.57, -37.03] |
   | multi_entry_int_maps/normalize_hash/struct_map_int/mixed_dense_null | 
1.591679 [1.577916, 1.607271] | 0.886168 [0.882572, 0.889973] | -44.67 [-45.20, 
-44.15] |
   | multi_entry_int_maps/normalize_hash/struct_map_int/wide_dense_null | 
3.350707 [3.333561, 3.369101] | 1.778045 [1.772774, 1.783062] | -46.87 [-47.19, 
-46.54] |
   | multi_entry_int_maps/normalize_hash/struct_map_int/wide_long_unicode | 
99.514669 [98.494585, 100.582908] | 84.849294 [84.610544, 85.119287] | -14.74 
[-15.68, -13.81] |
   | 
multi_entry_int_maps/normalize_hash/struct_map_int/wide_long_unicode_dense_null 
| 62.983163 [62.488513, 63.466262] | 53.196420 [53.022391, 53.392616] | -15.54 
[-16.25, -14.80] |
   | multi_entry_int_maps/normalize_hash/struct_map_int/wide_no_null | 4.241714 
[4.225298, 4.257163] | 2.605669 [2.598808, 2.612900] | -38.36 [-38.64, -38.06] |
   | multi_entry_int_maps/normalize_hash/struct_map_int/wide_sparse_null | 
4.326263 [4.307835, 4.343826] | 2.755664 [2.742788, 2.768494] | -36.54 [-36.86, 
-36.19] |
   | multi_entry_int_maps/normalize_only/map/mixed_dense_null | 1.049101 
[1.040979, 1.058181] | 0.499449 [0.495715, 0.503455] | -52.68 [-53.16, -52.20] |
   | multi_entry_int_maps/normalize_only/map/wide_dense_null | 2.553617 
[2.516866, 2.588511] | 1.243265 [1.226862, 1.257867] | -51.60 [-52.10, -51.08] |
   | multi_entry_int_maps/normalize_only/map/wide_long_unicode | 22.638445 
[22.522588, 22.776090] | 21.227017 [21.140163, 21.322381] | -6.23 [-6.92, 
-5.59] |
   | multi_entry_int_maps/normalize_only/map/wide_long_unicode_dense_null | 
22.743612 [22.675809, 22.808203] | 21.271406 [21.188210, 21.359706] | -6.47 
[-6.94, -6.00] |
   | multi_entry_int_maps/normalize_only/map/wide_no_null | 2.353425 [2.340957, 
2.366710] | 1.125002 [1.116061, 1.136612] | -51.46 [-51.85, -51.11] |
   | multi_entry_int_maps/normalize_only/map/wide_sparse_null | 2.451406 
[2.431075, 2.468949] | 1.216252 [1.213643, 1.219300] | -50.40 [-50.68, -50.10] |
   | regression_maps/hash_only/map/mixed_dense_null | 0.573734 [0.571174, 
0.576098] | 0.515212 [0.513514, 0.517152] | -9.99 [-10.50, -9.45] |
   | regression_maps/hash_only/map/mixed_long_unicode_dense_null | 39.475333 
[39.143922, 39.776078] | 32.243070 [32.172971, 32.317813] | -18.32 [-18.96, 
-17.61] |
   | regression_maps/hash_only/map/mixed_no_null | 0.955752 [0.951690, 
0.959291] | 0.861644 [0.858801, 0.864760] | -8.97 [-9.46, -8.47] |
   | regression_maps/hash_only/map/mixed_sparse_null | 0.985686 [0.977372, 
0.994366] | 0.881138 [0.878176, 0.883949] | -10.12 [-11.09, -9.17] |
   | regression_maps/hash_only/map/singleton_dense_null | 0.012874 [0.012810, 
0.012933] | 0.012009 [0.011962, 0.012059] | -7.20 [-7.97, -6.48] |
   | regression_maps/hash_only/map/singleton_long_unicode | 5.413250 [5.360072, 
5.466480] | 4.777156 [4.749153, 4.808462] | -11.75 [-12.75, -10.70] |
   | regression_maps/hash_only/map/singleton_no_null | 0.034010 [0.033710, 
0.034319] | 0.031366 [0.031325, 0.031407] | -7.47 [-8.05, -6.91] |
   | regression_maps/hash_only/map/singleton_sparse_null | 0.042623 [0.042278, 
0.042941] | 0.038719 [0.038635, 0.038820] | -7.62 [-8.26, -7.00] |
   | regression_maps/hash_only/struct_map_int/mixed_dense_null | 0.620130 
[0.612510, 0.627184] | 0.525686 [0.523824, 0.527695] | -13.82 [-15.11, -12.53] |
   | regression_maps/hash_only/struct_map_int/mixed_long_unicode_dense_null | 
38.143917 [37.726545, 38.572804] | 32.247516 [32.174597, 32.324397] | -15.46 
[-16.42, -14.50] |
   | regression_maps/hash_only/struct_map_int/mixed_no_null | 0.961241 
[0.949367, 0.975726] | 0.871356 [0.869152, 0.873629] | -10.16 [-10.91, -9.47] |
   | regression_maps/hash_only/struct_map_int/mixed_sparse_null | 1.002809 
[0.995061, 1.011914] | 0.888110 [0.883873, 0.893059] | -13.26 [-14.24, -12.28] |
   | regression_maps/hash_only/struct_map_int/singleton_dense_null | 0.021009 
[0.020927, 0.021112] | 0.019654 [0.019601, 0.019726] | -6.74 [-7.34, -6.05] |
   | regression_maps/hash_only/struct_map_int/singleton_long_unicode | 5.608737 
[5.546328, 5.672366] | 4.744444 [4.718851, 4.775973] | -15.41 [-16.49, -14.30] |
   | regression_maps/hash_only/struct_map_int/singleton_no_null | 0.042110 
[0.041828, 0.042441] | 0.037817 [0.037783, 0.037849] | -10.15 [-10.58, -9.73] |
   | regression_maps/hash_only/struct_map_int/singleton_sparse_null | 0.050949 
[0.050603, 0.051328] | 0.044919 [0.044813, 0.045050] | -11.15 [-11.72, -10.64] |
   | regression_maps/normalize_hash/map/mixed_dense_null | 1.932876 [1.913055, 
1.953200] | 1.757228 [1.751421, 1.763408] | -10.82 [-11.78, -9.83] |
   | regression_maps/normalize_hash/map/mixed_long_unicode_dense_null | 
46.546517 [46.249115, 46.851328] | 41.980622 [41.879802, 42.081515] | -9.81 
[-10.44, -9.19] |
   | regression_maps/normalize_hash/map/mixed_no_null | 2.394949 [2.377064, 
2.413906] | 2.086912 [2.078818, 2.096521] | -12.62 [-13.45, -11.71] |
   | regression_maps/normalize_hash/map/mixed_sparse_null | 2.752169 [2.717999, 
2.788445] | 2.406924 [2.398357, 2.416604] | -12.14 [-13.01, -11.28] |
   | regression_maps/normalize_hash/map/singleton_dense_null | 0.084054 
[0.083345, 0.084878] | 0.076710 [0.076291, 0.077178] | -9.23 [-10.47, -7.91] |
   | regression_maps/normalize_hash/map/singleton_long_unicode | 5.707849 
[5.679360, 5.739430] | 5.162268 [5.131169, 5.197831] | -9.56 [-10.29, -8.77] |
   | regression_maps/normalize_hash/map/singleton_no_null | 0.098735 [0.097811, 
0.099723] | 0.093007 [0.092184, 0.093867] | -6.39 [-7.46, -5.38] |
   | regression_maps/normalize_hash/map/singleton_sparse_null | 0.137767 
[0.136914, 0.138736] | 0.127877 [0.127098, 0.128788] | -7.30 [-7.89, -6.66] |
   | regression_maps/normalize_hash/struct_map_int/mixed_dense_null | 1.936508 
[1.919340, 1.955266] | 1.774254 [1.763450, 1.785962] | -8.48 [-9.69, -7.27] |
   | 
regression_maps/normalize_hash/struct_map_int/mixed_long_unicode_dense_null | 
47.735977 [47.309989, 48.159968] | 41.824211 [41.712403, 41.938327] | -12.38 
[-13.20, -11.57] |
   | regression_maps/normalize_hash/struct_map_int/mixed_no_null | 2.393451 
[2.370252, 2.415322] | 2.097543 [2.089294, 2.106787] | -13.07 [-13.94, -12.20] |
   | regression_maps/normalize_hash/struct_map_int/mixed_sparse_null | 2.663930 
[2.653059, 2.675174] | 2.441886 [2.417599, 2.468089] | -8.77 [-9.29, -8.25] |
   | regression_maps/normalize_hash/struct_map_int/singleton_dense_null | 
0.093762 [0.092784, 0.094827] | 0.084679 [0.084273, 0.085129] | -10.34 [-11.37, 
-9.28] |
   | regression_maps/normalize_hash/struct_map_int/singleton_long_unicode | 
5.848648 [5.796031, 5.900309] | 5.130805 [5.112896, 5.149592] | -12.27 [-13.11, 
-11.40] |
   | regression_maps/normalize_hash/struct_map_int/singleton_no_null | 0.107473 
[0.106733, 0.108489] | 0.098741 [0.098308, 0.099330] | -9.20 [-10.45, -7.81] |
   | regression_maps/normalize_hash/struct_map_int/singleton_sparse_null | 
0.153384 [0.151849, 0.154817] | 0.134456 [0.134169, 0.134739] | -10.76 [-11.74, 
-9.79] |
   | regression_maps/normalize_only/map/mixed_dense_null | 1.305613 [1.298508, 
1.314473] | 1.364932 [1.346962, 1.381698] | 1.24 [-0.01, 2.62] |
   | regression_maps/normalize_only/map/mixed_long_unicode_dense_null | 
10.100908 [10.057039, 10.149230] | 10.152993 [10.067440, 10.245531] | 0.52 
[-0.41, 1.51] |
   | regression_maps/normalize_only/map/mixed_no_null | 1.238506 [1.233877, 
1.244083] | 1.298261 [1.287412, 1.308777] | 4.77 [3.68, 5.84] |
   | regression_maps/normalize_only/map/mixed_sparse_null | 1.670553 [1.632795, 
1.702511] | 1.619063 [1.603978, 1.633042] | -1.04 [-2.56, 0.39] |
   | regression_maps/normalize_only/map/singleton_dense_null | 0.065474 
[0.065122, 0.065870] | 0.068979 [0.068489, 0.069474] | 5.41 [4.68, 6.14] |
   | regression_maps/normalize_only/map/singleton_long_unicode | 0.395832 
[0.393017, 0.398785] | 0.415664 [0.411426, 0.420134] | 6.29 [5.03, 7.58] |
   | regression_maps/normalize_only/map/singleton_no_null | 0.061801 [0.061540, 
0.062139] | 0.067296 [0.066293, 0.068235] | 6.76 [5.52, 7.97] |
   | regression_maps/normalize_only/map/singleton_sparse_null | 0.093908 
[0.092231, 0.095821] | 0.097075 [0.096292, 0.097936] | 6.11 [4.79, 7.32] |
   | spark_map_sort/int_keys/0 | 0.006962 [0.006902, 0.007018] | 0.003254 
[0.003215, 0.003289] | -53.25 [-53.78, -52.73] |
   | spark_map_sort/int_keys/1 | 0.017960 [0.017881, 0.018045] | 0.019514 
[0.019332, 0.019680] | 8.85 [8.08, 9.60] |
   | spark_map_sort/int_keys/16 | 1.416743 [1.413385, 1.420491] | 1.538763 
[1.525474, 1.552531] | 8.02 [7.03, 8.95] |
   | spark_map_sort/int_keys/4 | 0.933755 [0.931875, 0.935690] | 1.010855 
[1.005474, 1.016571] | 9.34 [8.70, 9.98] |
   | spark_map_sort/int_keys/64 | 1.868838 [1.864112, 1.873809] | 2.045926 
[2.001160, 2.093124] | 10.00 [8.59, 11.47] |
   | spark_map_sort/string_keys/0 | 0.006997 [0.006971, 0.007029] | 0.003286 
[0.003268, 0.003302] | -53.16 [-53.53, -52.78] |
   | spark_map_sort/string_keys/1 | 0.035552 [0.035431, 0.035720] | 0.040330 
[0.039887, 0.040847] | 12.93 [11.97, 13.89] |
   | spark_map_sort/string_keys/16 | 3.999255 [3.988036, 4.012051] | 3.193286 
[3.172456, 3.213719] | -20.15 [-20.70, -19.60] |
   | spark_map_sort/string_keys/4 | 1.126407 [1.120661, 1.133037] | 0.306869 
[0.302937, 0.311142] | -73.38 [-73.72, -73.04] |
   | spark_map_sort/string_keys/64 | 4.220635 [4.200750, 4.243675] | 3.287736 
[3.268866, 3.306038] | -22.10 [-22.74, -21.54] |
   | spark_map_sort/unsupported_singleton_struct_key | 0.000450 [0.000448, 
0.000452] | 0.000450 [0.000447, 0.000454] | 0.22 [-0.68, 1.17] |
   
   </details>
   
   <details>
   <summary>Fresh independent pairs and reverse-order confirmations</summary>
   
   | Case | Fresh baseline ms (95% CI) | Fresh integrated ms (95% CI) | A/B 
change % | B/A change % |
   |---|---:|---:|---:|---:|
   | matched_maps/hash_only/map/10/reversed | 0.307597 [0.306905, 0.308324] | 
0.308063 [0.307327, 0.308836] | 0.15 | — |
   | matched_maps/hash_only/map/50/forward | 2.043116 [2.027317, 2.061498] | 
2.023694 [2.015670, 2.032417] | -0.95 | — |
   | matched_maps/hash_only/map/50/reversed | 2.031379 [2.021587, 2.042563] | 
2.033373 [2.025952, 2.041082] | 0.10 | — |
   | matched_maps/hash_only/struct_map_int/1/reversed | 0.035797 [0.035662, 
0.035952] | 0.035960 [0.035927, 0.035994] | 0.46 | — |
   | matched_maps/hash_only/struct_map_int/10/reversed | 0.322155 [0.321483, 
0.322876] | 0.323318 [0.322561, 0.324042] | 0.36 | — |
   | matched_maps/hash_only/struct_map_int/50/reversed | 2.060097 [2.054241, 
2.066084] | 2.059854 [2.051329, 2.069160] | -0.01 | — |
   | matched_maps/normalize_only/map/1/forward | 0.044923 [0.044822, 0.045029] 
| 0.044885 [0.044768, 0.045009] | -0.08 | — |
   | matched_maps/normalize_only/map/1/reversed | 0.045150 [0.045023, 0.045276] 
| 0.045925 [0.045612, 0.046272] | 1.72 | — |
   | matched_maps/normalize_only/map/50/forward | 2.837147 [2.834211, 2.840324] 
| 1.718847 [1.713643, 1.724722] | -39.42 | — |
   | matched_maps/normalize_only/map/50/reversed | 3.585526 [3.575871, 
3.598663] | 2.419840 [2.417011, 2.422764] | -32.51 | — |
   | regression_maps/normalize_only/map/mixed_no_null | 1.202431 [1.194928, 
1.210687] | 1.190024 [1.180861, 1.200472] | -1.03 | — |
   | regression_maps/normalize_only/map/singleton_dense_null | 0.064859 
[0.064683, 0.065039] | 0.064748 [0.064412, 0.065114] | -0.17 | — |
   | regression_maps/normalize_only/map/singleton_long_unicode | 0.372372 
[0.371965, 0.372786] | 0.373767 [0.373339, 0.374249] | 0.37 | — |
   | regression_maps/normalize_only/map/singleton_no_null | 0.061337 [0.061022, 
0.061699] | 0.061878 [0.061588, 0.062208] | 0.88 | — |
   | regression_maps/normalize_only/map/singleton_sparse_null | 0.092175 
[0.091949, 0.092419] | 0.092645 [0.092393, 0.092924] | 0.51 | — |
   | spark_map_sort/int_keys/1 | 0.017857 [0.017817, 0.017899] | 0.017066 
[0.016999, 0.017147] | -4.43 | — |
   | spark_map_sort/int_keys/16 | 1.393109 [1.390020, 1.396776] | 1.441855 
[1.439159, 1.444649] | 3.50 | 1.99 |
   | spark_map_sort/int_keys/4 | 0.939643 [0.936180, 0.943118] | 0.996864 
[0.994855, 0.999169] | 6.09 | 0.11 |
   | spark_map_sort/int_keys/64 | 1.859120 [1.853594, 1.865412] | 1.741639 
[1.736799, 1.747314] | -6.32 | — |
   | spark_map_sort/string_keys/1 | 0.035479 [0.035395, 0.035553] | 0.035450 
[0.035257, 0.035684] | -0.08 | — |
   
   </details>
   
   <details>
   <summary>Benchmark executable identities (SHA-256)</summary>
   
   - baseline `map_sort`: 
`d93a75c7df21c0b57fb994664c6024b8aa07bea85939f08d7b0e6279689c6e8f`
   - baseline `hash`: 
`05739bd6b3ef97c63ed814943cd994e205212abb9a95c8484c977ebdc77e3207`
   - integrated `map_sort`: 
`47a0a73bbedfd8c6339c0e3626d1d0af6ffb9e6fdee679c8c26896905147f7a3`
   - integrated `hash`: 
`ccc68e4d95296c241e222a7c5a552c8a57c30b5365fccbe72ff097a5400e7dd3`
   
   </details>
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to