Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

perf(hashkey): refine the memory reserving for SerializedKey #9556

Merged
merged 9 commits into from
May 5, 2023

Conversation

kwannoel
Copy link
Contributor

@kwannoel kwannoel commented May 3, 2023

I hereby agree to the terms of the RisingWave Labs, Inc. Contributor License Agreement.

What's changed and what's your intention?

closes #9305.

Checklist For Contributors

  • I have written necessary rustdoc comments
  • I have added necessary unit tests and integration tests
  • I have added fuzzing tests or opened an issue to track them. (Optional, recommended for new SQL features Sqlsmith: Sql feature generation #7934).
  • I have demonstrated that backward compatibility is not broken by breaking changes and created issues to track deprecated features to be removed in the future. (Please refer to the issue)
  • All checks passed in ./risedev check (or alias, ./risedev c)

Checklist For Reviewers

  • I have requested macro/micro-benchmarks as this PR can affect performance substantially, and the results are shown.

Documentation

  • My PR DOES NOT contain user-facing changes.
Click here for Documentation

Types of user-facing changes

Please keep the types that apply to your changes, and remove the others.

  • Installation and deployment
  • Connector (sources & sinks)
  • SQL commands, functions, and operators
  • RisingWave cluster configuration changes
  • Other (please specify in the release note below)

Release note

@kwannoel kwannoel marked this pull request as draft May 3, 2023 05:17
@kwannoel kwannoel force-pushed the kwannoel/opt-group-key branch from b948890 to 9fa4089 Compare May 3, 2023 05:26
@kwannoel kwannoel marked this pull request as ready for review May 3, 2023 05:32
@kwannoel kwannoel changed the title perf(hashkey): refine the memory reserving for SerializedKey perf(hashkey): refine the memory reserving for SerializedKey [WIP] May 3, 2023
@kwannoel kwannoel marked this pull request as draft May 3, 2023 08:03
@kwannoel

This comment was marked as outdated.

@kwannoel

This comment was marked as outdated.

@kwannoel kwannoel force-pushed the kwannoel/opt-group-key branch from 5c6f764 to bff940f Compare May 5, 2023 12:42
@kwannoel
Copy link
Contributor Author

kwannoel commented May 5, 2023

Performance generally improved for KeySerialized (6-10%) but worsened for some fixedkey cases (up 10% regression) not sure why... the estimation logic should only be done for KeySerialized:

results
vec ser 1024 rows, Serial Key64, Pr[null]=0
                        time:   [12.571 µs 13.009 µs 13.473 µs]
                        change: [-14.779% -10.130% -5.1795%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 5 outliers among 100 measurements (5.00%)
  5 (5.00%) high mild

vec ser 1024 rows, Serial Key64, Pr[null]=0.01
                        time:   [18.374 µs 18.677 µs 19.006 µs]
                        change: [+4.5412% +6.5172% +8.5152%] (p = 0.00 < 0.05)
                        Performance has regressed.

vec ser 1024 rows, Serial Key64, Pr[null]=0.1
                        time:   [20.437 µs 20.788 µs 21.128 µs]
                        change: [+7.2254% +8.8300% +10.468%] (p = 0.00 < 0.05)
                        Performance has regressed.

vec ser 1024 rows, int32 Key32, Pr[null]=0
                        time:   [19.629 µs 19.947 µs 20.285 µs]
                        change: [+7.8082% +10.264% +12.553%] (p = 0.00 < 0.05)
                        Performance has regressed.

vec ser 1024 rows, int32 Key32, Pr[null]=0.01
                        time:   [20.448 µs 20.877 µs 21.286 µs]
                        change: [+6.8828% +9.2124% +11.502%] (p = 0.00 < 0.05)
                        Performance has regressed.

vec ser 1024 rows, int32 Key32, Pr[null]=0.1
                        time:   [20.694 µs 21.097 µs 21.486 µs]
                        change: [+2.4121% +4.2207% +6.1057%] (p = 0.00 < 0.05)
                        Performance has regressed.

vec ser 1024 rows, int64 Key64, Pr[null]=0
                        time:   [20.749 µs 20.983 µs 21.192 µs]
                        change: [+13.156% +14.935% +16.799%] (p = 0.00 < 0.05)
                        Performance has regressed.
Found 23 outliers among 100 measurements (23.00%)
  17 (17.00%) low severe
  3 (3.00%) low mild
  3 (3.00%) high mild

vec ser 1024 rows, int64 Key64, Pr[null]=0.01
                        time:   [21.416 µs 21.918 µs 22.418 µs]
                        change: [+7.7113% +10.703% +13.688%] (p = 0.00 < 0.05)
                        Performance has regressed.

vec ser 1024 rows, int64 Key64, Pr[null]=0.1
                        time:   [22.109 µs 22.406 µs 22.681 µs]
                        change: [+6.1821% +8.3413% +10.582%] (p = 0.00 < 0.05)
                        Performance has regressed.

vec ser 1024 rows, varchar KeySerialized, Pr[null]=0
                        time:   [97.013 µs 97.243 µs 97.472 µs]
                        change: [-7.3286% -6.9953% -6.6555%] (p = 0.00 < 0.05)
                        Performance has improved.

vec ser 1024 rows, varchar KeySerialized, Pr[null]=0.01
                        time:   [89.606 µs 90.586 µs 91.659 µs]
                        change: [-9.0969% -7.8273% -6.6335%] (p = 0.00 < 0.05)
                        Performance has improved.

vec ser 1024 rows, varchar KeySerialized, Pr[null]=0.1
                        time:   [87.623 µs 88.563 µs 89.526 µs]
                        change: [-6.1888% -4.9713% -3.6423%] (p = 0.00 < 0.05)
                        Performance has improved.

vec ser 1024 rows, composite varchar KeySerialized, Pr[null]=0
                        time:   [161.25 µs 161.83 µs 162.36 µs]
                        change: [-6.7678% -6.4286% -6.0893%] (p = 0.00 < 0.05)
                        Performance has improved.

vec ser 1024 rows, composite varchar KeySerialized, Pr[null]=0.01
                        time:   [154.42 µs 155.58 µs 156.71 µs]
                        change: [-8.8985% -8.0415% -7.2008%] (p = 0.00 < 0.05)
                        Performance has improved.

vec ser 1024 rows, composite varchar KeySerialized, Pr[null]=0.1
                        time:   [146.00 µs 147.06 µs 148.12 µs]
                        change: [-9.1716% -8.3895% -7.5988%] (p = 0.00 < 0.05)
                        Performance has improved.

vec ser 1024 rows, composite fixed, case 1 Key128, Pr[null]=0
                        time:   [36.697 µs 37.076 µs 37.425 µs]
                        change: [+1.5948% +2.4597% +3.3238%] (p = 0.00 < 0.05)
                        Performance has regressed.
Found 8 outliers among 100 measurements (8.00%)
  8 (8.00%) low mild

vec ser 1024 rows, composite fixed, case 1 Key128, Pr[null]=0.01
                        time:   [38.045 µs 38.262 µs 38.459 µs]
                        change: [+2.0726% +2.8453% +3.6017%] (p = 0.00 < 0.05)
                        Performance has regressed.
Found 11 outliers among 100 measurements (11.00%)
  11 (11.00%) low mild

vec ser 1024 rows, composite fixed, case 1 Key128, Pr[null]=0.1
                        time:   [38.020 µs 38.489 µs 38.963 µs]
                        change: [-1.8315% -0.7249% +0.4152%] (p = 0.22 > 0.05)
                        No change in performance detected.

vec ser 1024 rows, composite fixed, case 2 Key128, Pr[null]=0
                        time:   [36.441 µs 36.828 µs 37.238 µs]
                        change: [+3.9251% +5.1291% +6.3339%] (p = 0.00 < 0.05)
                        Performance has regressed.

vec ser 1024 rows, composite fixed, case 2 Key128, Pr[null]=0.01
                        time:   [36.347 µs 36.758 µs 37.199 µs]
                        change: [+1.7256% +2.7464% +3.7044%] (p = 0.00 < 0.05)
                        Performance has regressed.

vec ser 1024 rows, composite fixed, case 2 Key128, Pr[null]=0.1
                        time:   [38.510 µs 38.962 µs 39.422 µs]
                        change: [-0.4843% +0.4780% +1.4656%] (p = 0.32 > 0.05)
                        No change in performance detected.

vec ser 1024 rows, mix fixed and not fixed, case 1 KeySerialized, Pr[null]=0
                        time:   [114.30 µs 114.59 µs 114.88 µs]
                        change: [-9.3587% -8.7313% -8.1322%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 6 outliers among 100 measurements (6.00%)
  5 (5.00%) high mild
  1 (1.00%) high severe

vec ser 1024 rows, mix fixed and not fixed, case 1 KeySerialized, Pr[null]=0.01
                        time:   [108.79 µs 109.85 µs 110.83 µs]
                        change: [-10.830% -9.7370% -8.6162%] (p = 0.00 < 0.05)
                        Performance has improved.

vec ser 1024 rows, mix fixed and not fixed, case 1 KeySerialized, Pr[null]=0.1
                        time:   [107.49 µs 108.44 µs 109.29 µs]
                        change: [-7.1920% -6.2135% -5.1383%] (p = 0.00 < 0.05)
                        Performance has improved.

vec ser 1024 rows, mix fixed and not fixed, case 2 KeySerialized, Pr[null]=0
                        time:   [112.19 µs 112.71 µs 113.22 µs]
                        change: [-19.780% -16.311% -13.311%] (p = 0.00 < 0.05)
                        Performance has improved.

vec ser 1024 rows, mix fixed and not fixed, case 2 KeySerialized, Pr[null]=0.01
                        time:   [110.38 µs 111.49 µs 112.55 µs]
                        change: [-10.288% -9.5981% -9.0027%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 2 outliers among 100 measurements (2.00%)
  2 (2.00%) low mild

vec ser 1024 rows, mix fixed and not fixed, case 2 KeySerialized, Pr[null]=0.1
                        time:   [106.62 µs 107.78 µs 108.89 µs]
                        change: [-8.2348% -7.4626% -6.6539%] (p = 0.00 < 0.05)
                        Performance has improved.

vec ser 1024 rows, medium fixed KeySerialized, Pr[null]=0
                        time:   [124.33 µs 124.76 µs 125.17 µs]
                        change: [+0.6289% +1.3461% +2.0662%] (p = 0.00 < 0.05)
                        Change within noise threshold.
Found 3 outliers among 100 measurements (3.00%)
  3 (3.00%) low mild

vec ser 1024 rows, medium fixed KeySerialized, Pr[null]=0.01
                        time:   [123.02 µs 123.79 µs 124.51 µs]
                        change: [-1.3913% -0.6578% +0.0870%] (p = 0.09 > 0.05)
                        No change in performance detected.
Found 7 outliers among 100 measurements (7.00%)
  2 (2.00%) low severe
  5 (5.00%) low mild

vec ser 1024 rows, medium fixed KeySerialized, Pr[null]=0.1
                        time:   [128.79 µs 130.19 µs 131.69 µs]
                        change: [-2.4812% -1.4689% -0.3802%] (p = 0.01 < 0.05)
                        Change within noise threshold.

vec ser 1024 rows, medium mixed KeySerialized, Pr[null]=0
                        time:   [179.93 µs 180.35 µs 180.78 µs]
                        change: [-9.3307% -9.0083% -8.6823%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 9 outliers among 100 measurements (9.00%)
  5 (5.00%) low mild
  4 (4.00%) high mild

vec ser 1024 rows, medium mixed KeySerialized, Pr[null]=0.01
                        time:   [173.82 µs 175.04 µs 176.29 µs]
                        change: [-10.954% -10.104% -9.2906%] (p = 0.00 < 0.05)
                        Performance has improved.

vec ser 1024 rows, medium mixed KeySerialized, Pr[null]=0.1
                        time:   [181.47 µs 182.56 µs 183.55 µs]
                        change: [-7.2296% -6.5251% -5.8465%] (p = 0.00 < 0.05)
                        Performance has improved.

vec ser 1024 rows, large fixed KeySerialized, Pr[null]=0
                        time:   [219.25 µs 219.69 µs 220.15 µs]
                        change: [-1.7800% -1.4572% -1.1381%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 4 outliers among 100 measurements (4.00%)
  3 (3.00%) high mild
  1 (1.00%) high severe

vec ser 1024 rows, large fixed KeySerialized, Pr[null]=0.01
                        time:   [219.49 µs 220.04 µs 220.52 µs]
                        change: [-0.8089% -0.2235% +0.3636%] (p = 0.46 > 0.05)
                        No change in performance detected.
Found 11 outliers among 100 measurements (11.00%)
  11 (11.00%) low mild

vec ser 1024 rows, large fixed KeySerialized, Pr[null]=0.1
                        time:   [237.12 µs 237.90 µs 238.59 µs]
                        change: [+1.3243% +1.8533% +2.4386%] (p = 0.00 < 0.05)
                        Performance has regressed.
Found 8 outliers among 100 measurements (8.00%)
  1 (1.00%) low severe
  3 (3.00%) low mild
  4 (4.00%) high mild

vec ser 1024 rows, large mixed KeySerialized, Pr[null]=0
                        time:   [273.13 µs 273.50 µs 273.92 µs]
                        change: [-8.8349% -8.5890% -8.3511%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 7 outliers among 100 measurements (7.00%)
  1 (1.00%) low mild
  2 (2.00%) high mild
  4 (4.00%) high severe

vec ser 1024 rows, large mixed KeySerialized, Pr[null]=0.01
                        time:   [271.28 µs 272.44 µs 273.49 µs]
                        change: [-7.2041% -6.7918% -6.4221%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 16 outliers among 100 measurements (16.00%)
  16 (16.00%) low mild

vec ser 1024 rows, large mixed KeySerialized, Pr[null]=0.1
                        time:   [286.45 µs 287.58 µs 288.57 µs]
                        change: [-4.3510% -3.9292% -3.5274%] (p = 0.00 < 0.05)
                        Performance has improved.

vec ser 1024 rows, unaligned small fixed KeySerialized, Pr[null]=0
                        time:   [91.333 µs 91.627 µs 91.930 µs]
                        change: [+2.4588% +2.9297% +3.4017%] (p = 0.00 < 0.05)
                        Performance has regressed.
Found 6 outliers among 100 measurements (6.00%)
  4 (4.00%) low mild
  2 (2.00%) high mild

vec ser 1024 rows, unaligned small fixed KeySerialized, Pr[null]=0.01
                        time:   [88.822 µs 89.638 µs 90.367 µs]
                        change: [-0.3276% +1.0823% +2.6140%] (p = 0.14 > 0.05)
                        No change in performance detected.

vec ser 1024 rows, unaligned small fixed KeySerialized, Pr[null]=0.1
                        time:   [95.046 µs 96.017 µs 96.913 µs]
                        change: [-0.4528% +0.6447% +1.8825%] (p = 0.30 > 0.05)
                        No change in performance detected.

vec ser 1024 rows, unaligned medium fixed KeySerialized, Pr[null]=0
                        time:   [140.28 µs 140.53 µs 140.77 µs]
                        change: [+2.1237% +2.4686% +2.8039%] (p = 0.00 < 0.05)
                        Performance has regressed.
Found 1 outliers among 100 measurements (1.00%)
  1 (1.00%) high mild

vec ser 1024 rows, unaligned medium fixed KeySerialized, Pr[null]=0.01
                        time:   [136.24 µs 137.39 µs 138.40 µs]
                        change: [+0.2995% +1.3351% +2.3039%] (p = 0.01 < 0.05)
                        Change within noise threshold.

vec ser 1024 rows, unaligned medium fixed KeySerialized, Pr[null]=0.1
                        time:   [147.14 µs 148.42 µs 149.63 µs]
                        change: [+2.0627% +3.0275% +3.9616%] (p = 0.00 < 0.05)
                        Performance has regressed.
Found 12 outliers among 100 measurements (12.00%)
  12 (12.00%) low mild

vec ser 1024 rows, unaligned large fixed KeySerialized, Pr[null]=0
                        time:   [232.83 µs 233.30 µs 233.77 µs]
                        change: [+0.8567% +1.1692% +1.4803%] (p = 0.00 < 0.05)
                        Change within noise threshold.
Found 8 outliers among 100 measurements (8.00%)
  5 (5.00%) high mild
  3 (3.00%) high severe

vec ser 1024 rows, unaligned large fixed KeySerialized, Pr[null]=0.01
                        time:   [231.85 µs 233.19 µs 234.44 µs]
                        change: [+0.5742% +1.1389% +1.6712%] (p = 0.00 < 0.05)
                        Change within noise threshold.
Found 19 outliers among 100 measurements (19.00%)
  1 (1.00%) low severe
  17 (17.00%) low mild
  1 (1.00%) high mild

vec ser 1024 rows, unaligned large fixed KeySerialized, Pr[null]=0.1
                        time:   [251.80 µs 252.92 µs 253.94 µs]
                        change: [+0.2984% +0.8077% +1.3148%] (p = 0.00 < 0.05)
                        Change within noise threshold.
Found 13 outliers among 100 measurements (13.00%)
  6 (6.00%) low severe
  6 (6.00%) low mild
  1 (1.00%) high mild

@kwannoel kwannoel marked this pull request as ready for review May 5, 2023 13:38
@kwannoel kwannoel changed the title perf(hashkey): refine the memory reserving for SerializedKey [WIP] perf(hashkey): refine the memory reserving for SerializedKey May 5, 2023
@kwannoel kwannoel changed the title perf(hashkey): refine the memory reserving for SerializedKey perf(hashkey): refine the memory reserving for SerializedKey [WIP] May 5, 2023
@kwannoel
Copy link
Contributor Author

kwannoel commented May 5, 2023

After reverting the refactor still some weird fluctuations, but not as bad as before I guess:

results
vec ser 1024 rows, Serial Key64, Pr[null]=0
                        time:   [11.974 µs 12.506 µs 13.139 µs]
                        change: [-19.699% -15.538% -11.006%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 15 outliers among 100 measurements (15.00%)
  1 (1.00%) high mild
  14 (14.00%) high severe

vec ser 1024 rows, Serial Key64, Pr[null]=0.01
                        time:   [18.123 µs 18.367 µs 18.605 µs]
                        change: [+3.9137% +5.4758% +6.9824%] (p = 0.00 < 0.05)
                        Performance has regressed.
Found 18 outliers among 100 measurements (18.00%)
  15 (15.00%) low severe
  3 (3.00%) low mild

vec ser 1024 rows, Serial Key64, Pr[null]=0.1
                        time:   [19.535 µs 19.920 µs 20.277 µs]
                        change: [+0.8634% +2.7181% +4.8011%] (p = 0.01 < 0.05)
                        Change within noise threshold.

vec ser 1024 rows, int32 Key32, Pr[null]=0
                        time:   [19.591 µs 19.927 µs 20.241 µs]
                        change: [+7.5809% +10.223% +12.824%] (p = 0.00 < 0.05)
                        Performance has regressed.
Found 10 outliers among 100 measurements (10.00%)
  10 (10.00%) low mild

vec ser 1024 rows, int32 Key32, Pr[null]=0.01
                        time:   [19.883 µs 20.248 µs 20.589 µs]
                        change: [+4.5434% +6.4749% +8.4193%] (p = 0.00 < 0.05)
                        Performance has regressed.
Found 15 outliers among 100 measurements (15.00%)
  11 (11.00%) low severe
  1 (1.00%) low mild
  3 (3.00%) high mild

vec ser 1024 rows, int32 Key32, Pr[null]=0.1
                        time:   [20.563 µs 20.952 µs 21.317 µs]
                        change: [-0.8528% +1.1914% +3.0287%] (p = 0.22 > 0.05)
                        No change in performance detected.

vec ser 1024 rows, int64 Key64, Pr[null]=0
                        time:   [19.051 µs 19.328 µs 19.592 µs]
                        change: [+3.6051% +5.4596% +7.2101%] (p = 0.00 < 0.05)
                        Performance has regressed.

vec ser 1024 rows, int64 Key64, Pr[null]=0.01
                        time:   [19.576 µs 19.822 µs 20.049 µs]
                        change: [-2.2164% -0.1852% +1.9354%] (p = 0.86 > 0.05)
                        No change in performance detected.
Found 20 outliers among 100 measurements (20.00%)
  9 (9.00%) low mild
  11 (11.00%) high mild

vec ser 1024 rows, int64 Key64, Pr[null]=0.1
                        time:   [20.324 µs 20.716 µs 21.091 µs]
                        change: [+1.6643% +3.7567% +5.8132%] (p = 0.00 < 0.05)
                        Performance has regressed.
Found 10 outliers among 100 measurements (10.00%)
  7 (7.00%) low severe
  3 (3.00%) low mild

vec ser 1024 rows, varchar KeySerialized, Pr[null]=0
                        time:   [95.899 µs 96.393 µs 96.876 µs]
                        change: [-8.0599% -7.5603% -7.0942%] (p = 0.00 < 0.05)
                        Performance has improved.

vec ser 1024 rows, varchar KeySerialized, Pr[null]=0.01
                        time:   [92.925 µs 93.820 µs 94.715 µs]
                        change: [-6.5876% -5.5850% -4.5799%] (p = 0.00 < 0.05)
                        Performance has improved.

vec ser 1024 rows, varchar KeySerialized, Pr[null]=0.1
                        time:   [89.349 µs 90.467 µs 91.564 µs]
                        change: [-3.9325% -2.5889% -1.3090%] (p = 0.00 < 0.05)
                        Performance has improved.

vec ser 1024 rows, composite varchar KeySerialized, Pr[null]=0
                        time:   [159.77 µs 160.14 µs 160.53 µs]
                        change: [-7.2734% -6.9575% -6.6418%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 2 outliers among 100 measurements (2.00%)
  2 (2.00%) high mild

vec ser 1024 rows, composite varchar KeySerialized, Pr[null]=0.01
                        time:   [155.43 µs 156.36 µs 157.31 µs]
                        change: [-8.2627% -7.4124% -6.5458%] (p = 0.00 < 0.05)
                        Performance has improved.

vec ser 1024 rows, composite varchar KeySerialized, Pr[null]=0.1
                        time:   [147.02 µs 147.83 µs 148.64 µs]
                        change: [-8.3869% -7.7349% -7.0885%] (p = 0.00 < 0.05)
                        Performance has improved.

vec ser 1024 rows, composite fixed, case 1 Key128, Pr[null]=0
                        time:   [35.716 µs 35.938 µs 36.192 µs]
                        change: [-0.9339% -0.1402% +0.7219%] (p = 0.74 > 0.05)
                        No change in performance detected.
Found 11 outliers among 100 measurements (11.00%)
  3 (3.00%) high mild
  8 (8.00%) high severe

vec ser 1024 rows, composite fixed, case 1 Key128, Pr[null]=0.01
                        time:   [35.990 µs 36.347 µs 36.733 µs]
                        change: [-1.7252% -0.6543% +0.4209%] (p = 0.19 > 0.05)
                        No change in performance detected.
Found 1 outliers among 100 measurements (1.00%)
  1 (1.00%) high mild

vec ser 1024 rows, composite fixed, case 1 Key128, Pr[null]=0.1
                        time:   [37.748 µs 38.117 µs 38.445 µs]
                        change: [-4.3986% -3.3632% -2.3605%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 18 outliers among 100 measurements (18.00%)
  15 (15.00%) low severe
  2 (2.00%) low mild
  1 (1.00%) high mild

vec ser 1024 rows, composite fixed, case 2 Key128, Pr[null]=0
                        time:   [34.963 µs 35.368 µs 35.753 µs]
                        change: [-1.9198% -0.8244% +0.3051%] (p = 0.15 > 0.05)
                        No change in performance detected.

vec ser 1024 rows, composite fixed, case 2 Key128, Pr[null]=0.01
                        time:   [35.998 µs 36.307 µs 36.593 µs]
                        change: [+0.6682% +1.4109% +2.0889%] (p = 0.00 < 0.05)
                        Change within noise threshold.

vec ser 1024 rows, composite fixed, case 2 Key128, Pr[null]=0.1
                        time:   [37.494 µs 37.884 µs 38.242 µs]
                        change: [-2.1446% -1.3012% -0.5200%] (p = 0.00 < 0.05)
                        Change within noise threshold.
Found 10 outliers among 100 measurements (10.00%)
  7 (7.00%) low severe
  3 (3.00%) low mild

vec ser 1024 rows, mix fixed and not fixed, case 1 KeySerialized, Pr[null]=0
                        time:   [113.29 µs 113.60 µs 113.87 µs]
                        change: [-10.531% -9.9279% -9.3258%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 10 outliers among 100 measurements (10.00%)
  10 (10.00%) low mild

vec ser 1024 rows, mix fixed and not fixed, case 1 KeySerialized, Pr[null]=0.01
                        time:   [111.18 µs 111.78 µs 112.33 µs]
                        change: [-8.7060% -7.7368% -6.7286%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 10 outliers among 100 measurements (10.00%)
  10 (10.00%) low mild

vec ser 1024 rows, mix fixed and not fixed, case 1 KeySerialized, Pr[null]=0.1
                        time:   [108.35 µs 108.91 µs 109.49 µs]
                        change: [-5.8580% -5.0497% -4.1613%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 2 outliers among 100 measurements (2.00%)
  2 (2.00%) low mild

vec ser 1024 rows, mix fixed and not fixed, case 2 KeySerialized, Pr[null]=0
                        time:   [111.98 µs 112.30 µs 112.63 µs]
                        change: [-20.115% -16.654% -13.672%] (p = 0.00 < 0.05)
                        Performance has improved.

vec ser 1024 rows, mix fixed and not fixed, case 2 KeySerialized, Pr[null]=0.01
                        time:   [109.41 µs 110.11 µs 110.75 µs]
                        change: [-11.442% -10.929% -10.444%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 6 outliers among 100 measurements (6.00%)
  6 (6.00%) low mild

vec ser 1024 rows, mix fixed and not fixed, case 2 KeySerialized, Pr[null]=0.1
                        time:   [106.14 µs 106.97 µs 107.79 µs]
                        change: [-8.6938% -8.1656% -7.6575%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 7 outliers among 100 measurements (7.00%)
  7 (7.00%) low mild

vec ser 1024 rows, medium fixed KeySerialized, Pr[null]=0
                        time:   [122.87 µs 123.14 µs 123.44 µs]
                        change: [-0.3979% +0.3016% +1.0130%] (p = 0.41 > 0.05)
                        No change in performance detected.
Found 1 outliers among 100 measurements (1.00%)
  1 (1.00%) high mild

vec ser 1024 rows, medium fixed KeySerialized, Pr[null]=0.01
                        time:   [122.08 µs 122.86 µs 123.56 µs]
                        change: [-2.3353% -1.6377% -0.9027%] (p = 0.00 < 0.05)
                        Change within noise threshold.
Found 20 outliers among 100 measurements (20.00%)
  6 (6.00%) low severe
  11 (11.00%) low mild
  3 (3.00%) high mild

vec ser 1024 rows, medium fixed KeySerialized, Pr[null]=0.1
                        time:   [132.08 µs 132.77 µs 133.38 µs]
                        change: [-0.8224% -0.0692% +0.7511%] (p = 0.87 > 0.05)
                        No change in performance detected.
Found 9 outliers among 100 measurements (9.00%)
  9 (9.00%) low mild

vec ser 1024 rows, medium mixed KeySerialized, Pr[null]=0
                        time:   [179.61 µs 180.05 µs 180.47 µs]
                        change: [-9.3979% -9.0310% -8.6724%] (p = 0.00 < 0.05)
                        Performance has improved.

vec ser 1024 rows, medium mixed KeySerialized, Pr[null]=0.01
                        time:   [173.43 µs 174.60 µs 175.72 µs]
                        change: [-10.781% -9.8595% -9.0019%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 13 outliers among 100 measurements (13.00%)
  8 (8.00%) low mild
  5 (5.00%) high mild

vec ser 1024 rows, medium mixed KeySerialized, Pr[null]=0.1
                        time:   [181.78 µs 183.02 µs 184.21 µs]
                        change: [-6.3070% -5.5349% -4.8306%] (p = 0.00 < 0.05)
                        Performance has improved.

vec ser 1024 rows, large fixed KeySerialized, Pr[null]=0
                        time:   [233.59 µs 239.92 µs 247.52 µs]
                        change: [+3.6240% +5.5657% +7.9805%] (p = 0.00 < 0.05)
                        Performance has regressed.
Found 9 outliers among 100 measurements (9.00%)
  5 (5.00%) high mild
  4 (4.00%) high severe

vec ser 1024 rows, large fixed KeySerialized, Pr[null]=0.01
                        time:   [222.31 µs 223.47 µs 224.74 µs]
                        change: [+1.9687% +2.8436% +3.9602%] (p = 0.00 < 0.05)
                        Performance has regressed.
Found 9 outliers among 100 measurements (9.00%)
  1 (1.00%) low mild
  6 (6.00%) high mild
  2 (2.00%) high severe

vec ser 1024 rows, large fixed KeySerialized, Pr[null]=0.1
                        time:   [237.41 µs 238.51 µs 239.59 µs]
                        change: [+1.6689% +2.3182% +3.0113%] (p = 0.00 < 0.05)
                        Performance has regressed.
Found 2 outliers among 100 measurements (2.00%)
  2 (2.00%) high mild

vec ser 1024 rows, large mixed KeySerialized, Pr[null]=0
                        time:   [278.48 µs 279.74 µs 281.13 µs]
                        change: [-6.7508% -6.3386% -5.9203%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 1 outliers among 100 measurements (1.00%)
  1 (1.00%) high mild

vec ser 1024 rows, large mixed KeySerialized, Pr[null]=0.01
                        time:   [284.01 µs 285.88 µs 287.80 µs]
                        change: [-2.7389% -2.2192% -1.7524%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 1 outliers among 100 measurements (1.00%)
  1 (1.00%) high mild

vec ser 1024 rows, large mixed KeySerialized, Pr[null]=0.1
                        time:   [297.01 µs 299.01 µs 301.07 µs]
                        change: [+0.4071% +1.0336% +1.7475%] (p = 0.00 < 0.05)
                        Change within noise threshold.

vec ser 1024 rows, unaligned small fixed KeySerialized, Pr[null]=0
                        time:   [94.974 µs 95.413 µs 95.840 µs]
                        change: [+4.6813% +5.3129% +6.0017%] (p = 0.00 < 0.05)
                        Performance has regressed.

vec ser 1024 rows, unaligned small fixed KeySerialized, Pr[null]=0.01
                        time:   [88.067 µs 89.419 µs 90.721 µs]
                        change: [+0.3855% +1.9987% +3.5016%] (p = 0.01 < 0.05)
                        Change within noise threshold.

vec ser 1024 rows, unaligned small fixed KeySerialized, Pr[null]=0.1
                        time:   [92.789 µs 94.200 µs 95.643 µs]
                        change: [-1.3565% -0.1438% +1.1367%] (p = 0.83 > 0.05)
                        No change in performance detected.

vec ser 1024 rows, unaligned medium fixed KeySerialized, Pr[null]=0
                        time:   [140.14 µs 140.66 µs 141.19 µs]
                        change: [+2.0130% +2.4505% +2.9203%] (p = 0.00 < 0.05)
                        Performance has regressed.
Found 11 outliers among 100 measurements (11.00%)
  11 (11.00%) high mild

vec ser 1024 rows, unaligned medium fixed KeySerialized, Pr[null]=0.01
                        time:   [134.25 µs 135.35 µs 136.46 µs]
                        change: [+0.3669% +1.4301% +2.3793%] (p = 0.01 < 0.05)
                        Change within noise threshold.

vec ser 1024 rows, unaligned medium fixed KeySerialized, Pr[null]=0.1
                        time:   [145.70 µs 147.16 µs 148.60 µs]
                        change: [+0.1957% +1.1782% +2.2010%] (p = 0.02 < 0.05)
                        Change within noise threshold.

vec ser 1024 rows, unaligned large fixed KeySerialized, Pr[null]=0
                        time:   [234.04 µs 234.62 µs 235.22 µs]
                        change: [+1.2496% +1.6003% +1.9227%] (p = 0.00 < 0.05)
                        Performance has regressed.
Found 1 outliers among 100 measurements (1.00%)
  1 (1.00%) high mild

vec ser 1024 rows, unaligned large fixed KeySerialized, Pr[null]=0.01
                        time:   [233.82 µs 234.59 µs 235.25 µs]
                        change: [+0.6964% +1.1517% +1.6122%] (p = 0.00 < 0.05)
                        Change within noise threshold.
Found 9 outliers among 100 measurements (9.00%)
  8 (8.00%) low mild
  1 (1.00%) high mild

vec ser 1024 rows, unaligned large fixed KeySerialized, Pr[null]=0.1
                        time:   [252.74 µs 253.42 µs 254.04 µs]
                        change: [+0.5288% +0.9747% +1.4316%] (p = 0.00 < 0.05)
                        Change within noise threshold.
Found 6 outliers among 100 measurements (6.00%)
  1 (1.00%) low severe
  2 (2.00%) low mild
  1 (1.00%) high mild
  2 (2.00%) high severe

@kwannoel
Copy link
Contributor Author

kwannoel commented May 5, 2023

Seeing similar fluctuations when the same commit against itself. I guess it's just noise and safe to ignore for this PR... Although it could be a separate issue.

results
vec ser 1024 rows, Serial Key64, Pr[null]=0
                        time:   [12.982 µs 14.002 µs 15.160 µs]
                        change: [-14.930% -9.7568% -3.9203%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 9 outliers among 100 measurements (9.00%)
  2 (2.00%) high mild
  7 (7.00%) high severe

vec ser 1024 rows, Serial Key64, Pr[null]=0.01
                        time:   [16.109 µs 16.638 µs 17.111 µs]
                        change: [-11.862% -8.4033% -5.4838%] (p = 0.00 < 0.05)
                        Performance has improved.

vec ser 1024 rows, Serial Key64, Pr[null]=0.1
                        time:   [19.439 µs 19.789 µs 20.136 µs]
                        change: [+1.7590% +3.5892% +5.3337%] (p = 0.00 < 0.05)
                        Performance has regressed.
Found 6 outliers among 100 measurements (6.00%)
  2 (2.00%) low severe
  1 (1.00%) low mild
  3 (3.00%) high mild

vec ser 1024 rows, int32 Key32, Pr[null]=0
                        time:   [20.399 µs 20.547 µs 20.682 µs]
                        change: [+8.9511% +11.098% +13.238%] (p = 0.00 < 0.05)
                        Performance has regressed.

vec ser 1024 rows, int32 Key32, Pr[null]=0.01
                        time:   [20.118 µs 20.342 µs 20.564 µs]
                        change: [+4.7645% +6.7140% +8.6086%] (p = 0.00 < 0.05)
                        Performance has regressed.

vec ser 1024 rows, int32 Key32, Pr[null]=0.1
                        time:   [21.711 µs 21.931 µs 22.151 µs]
                        change: [+5.7816% +7.2455% +8.7772%] (p = 0.00 < 0.05)
                        Performance has regressed.

vec ser 1024 rows, int64 Key64, Pr[null]=0
                        time:   [19.725 µs 19.946 µs 20.171 µs]
                        change: [+7.7223% +9.5455% +11.383%] (p = 0.00 < 0.05)
                        Performance has regressed.

vec ser 1024 rows, int64 Key64, Pr[null]=0.01
                        time:   [19.444 µs 19.741 µs 20.043 µs]
                        change: [-2.4549% -0.2773% +1.9232%] (p = 0.81 > 0.05)
                        No change in performance detected.

vec ser 1024 rows, int64 Key64, Pr[null]=0.1
                        time:   [20.703 µs 21.074 µs 21.446 µs]
                        change: [+0.7331% +2.8276% +5.0531%] (p = 0.01 < 0.05)
                        Change within noise threshold.

vec ser 1024 rows, varchar KeySerialized, Pr[null]=0
                        time:   [104.31 µs 105.54 µs 106.67 µs]
                        change: [-1.2287% -0.3163% +0.7823%] (p = 0.54 > 0.05)
                        No change in performance detected.

vec ser 1024 rows, varchar KeySerialized, Pr[null]=0.01
                        time:   [105.86 µs 106.69 µs 107.47 µs]
                        change: [+4.1377% +5.1978% +6.3294%] (p = 0.00 < 0.05)
                        Performance has regressed.

vec ser 1024 rows, varchar KeySerialized, Pr[null]=0.1
                        time:   [98.068 µs 98.604 µs 99.169 µs]
                        change: [+5.5988% +6.7595% +7.9842%] (p = 0.00 < 0.05)
                        Performance has regressed.
Found 1 outliers among 100 measurements (1.00%)
  1 (1.00%) low mild

vec ser 1024 rows, composite varchar KeySerialized, Pr[null]=0
                        time:   [172.93 µs 174.14 µs 175.40 µs]
                        change: [+0.2197% +0.8216% +1.4914%] (p = 0.01 < 0.05)
                        Change within noise threshold.

vec ser 1024 rows, composite varchar KeySerialized, Pr[null]=0.01
                        time:   [172.69 µs 174.23 µs 175.65 µs]
                        change: [+1.7384% +2.7522% +3.7697%] (p = 0.00 < 0.05)
                        Performance has regressed.
Found 1 outliers among 100 measurements (1.00%)
  1 (1.00%) low mild

vec ser 1024 rows, composite varchar KeySerialized, Pr[null]=0.1
                        time:   [158.82 µs 160.09 µs 161.36 µs]
                        change: [-0.0461% +0.7166% +1.4997%] (p = 0.07 > 0.05)
                        No change in performance detected.

vec ser 1024 rows, composite fixed, case 1 Key128, Pr[null]=0
                        time:   [37.408 µs 37.688 µs 37.948 µs]
                        change: [+3.7228% +4.5232% +5.2847%] (p = 0.00 < 0.05)
                        Performance has regressed.
Found 11 outliers among 100 measurements (11.00%)
  11 (11.00%) low mild

vec ser 1024 rows, composite fixed, case 1 Key128, Pr[null]=0.01
                        time:   [36.450 µs 36.901 µs 37.358 µs]
                        change: [-1.4784% -0.3868% +0.6676%] (p = 0.48 > 0.05)
                        No change in performance detected.

vec ser 1024 rows, composite fixed, case 1 Key128, Pr[null]=0.1
                        time:   [39.164 µs 39.467 µs 39.750 µs]
                        change: [-0.3820% +0.5550% +1.4940%] (p = 0.25 > 0.05)
                        No change in performance detected.
Found 4 outliers among 100 measurements (4.00%)
  4 (4.00%) low mild

vec ser 1024 rows, composite fixed, case 2 Key128, Pr[null]=0
                        time:   [36.190 µs 36.623 µs 37.023 µs]
                        change: [+1.3835% +2.5151% +3.6798%] (p = 0.00 < 0.05)
                        Performance has regressed.
Found 13 outliers among 100 measurements (13.00%)
  13 (13.00%) low mild

vec ser 1024 rows, composite fixed, case 2 Key128, Pr[null]=0.01
                        time:   [37.241 µs 37.389 µs 37.512 µs]
                        change: [+2.9151% +3.5401% +4.2053%] (p = 0.00 < 0.05)
                        Performance has regressed.
Found 16 outliers among 100 measurements (16.00%)
  9 (9.00%) low severe
  4 (4.00%) low mild
  3 (3.00%) high mild

vec ser 1024 rows, composite fixed, case 2 Key128, Pr[null]=0.1
                        time:   [38.380 µs 38.778 µs 39.137 µs]
                        change: [-2.5803% -1.6132% -0.5471%] (p = 0.00 < 0.05)
                        Change within noise threshold.

vec ser 1024 rows, mix fixed and not fixed, case 1 KeySerialized, Pr[null]=0
                        time:   [124.90 µs 125.46 µs 126.04 µs]
                        change: [-0.7764% -0.1016% +0.6036%] (p = 0.78 > 0.05)
                        No change in performance detected.

vec ser 1024 rows, mix fixed and not fixed, case 1 KeySerialized, Pr[null]=0.01
                        time:   [122.34 µs 123.09 µs 123.79 µs]
                        change: [-0.5291% +0.6222% +1.8207%] (p = 0.30 > 0.05)
                        No change in performance detected.
Found 13 outliers among 100 measurements (13.00%)
  13 (13.00%) low mild

vec ser 1024 rows, mix fixed and not fixed, case 1 KeySerialized, Pr[null]=0.1
                        time:   [114.45 µs 115.33 µs 116.17 µs]
                        change: [+0.0750% +1.0186% +2.0499%] (p = 0.05 < 0.05)
                        Change within noise threshold.
Found 8 outliers among 100 measurements (8.00%)
  8 (8.00%) low mild

vec ser 1024 rows, mix fixed and not fixed, case 2 KeySerialized, Pr[null]=0
                        time:   [122.85 µs 123.27 µs 123.69 µs]
                        change: [-12.455% -8.6964% -5.4178%] (p = 0.00 < 0.05)
                        Performance has improved.

vec ser 1024 rows, mix fixed and not fixed, case 2 KeySerialized, Pr[null]=0.01
                        time:   [118.45 µs 119.21 µs 119.91 µs]
                        change: [-4.9859% -4.2576% -3.5271%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 14 outliers among 100 measurements (14.00%)
  13 (13.00%) low mild
  1 (1.00%) high mild

vec ser 1024 rows, mix fixed and not fixed, case 2 KeySerialized, Pr[null]=0.1
                        time:   [114.65 µs 115.10 µs 115.57 µs]
                        change: [-1.8245% -1.4086% -1.0095%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 1 outliers among 100 measurements (1.00%)
  1 (1.00%) low mild

vec ser 1024 rows, medium fixed KeySerialized, Pr[null]=0
                        time:   [122.62 µs 123.70 µs 124.69 µs]
                        change: [-0.6432% +0.2748% +1.2522%] (p = 0.58 > 0.05)
                        No change in performance detected.

vec ser 1024 rows, medium fixed KeySerialized, Pr[null]=0.01
                        time:   [123.50 µs 124.56 µs 125.51 µs]
                        change: [-1.4817% -0.6522% +0.1666%] (p = 0.12 > 0.05)
                        No change in performance detected.
Found 21 outliers among 100 measurements (21.00%)
  15 (15.00%) low severe
  4 (4.00%) low mild
  2 (2.00%) high mild

vec ser 1024 rows, medium fixed KeySerialized, Pr[null]=0.1
                        time:   [133.02 µs 133.92 µs 134.77 µs]
                        change: [-0.3644% +0.5356% +1.3777%] (p = 0.23 > 0.05)
                        No change in performance detected.
Found 14 outliers among 100 measurements (14.00%)
  14 (14.00%) low mild

vec ser 1024 rows, medium mixed KeySerialized, Pr[null]=0
                        time:   [197.19 µs 198.11 µs 198.95 µs]
                        change: [-0.7556% -0.2979% +0.1428%] (p = 0.20 > 0.05)
                        No change in performance detected.
Found 10 outliers among 100 measurements (10.00%)
  10 (10.00%) low mild

vec ser 1024 rows, medium mixed KeySerialized, Pr[null]=0.01
                        time:   [196.47 µs 197.32 µs 198.07 µs]
                        change: [-0.1801% +0.7012% +1.5261%] (p = 0.11 > 0.05)
                        No change in performance detected.
Found 12 outliers among 100 measurements (12.00%)
  7 (7.00%) low severe
  4 (4.00%) low mild
  1 (1.00%) high mild

vec ser 1024 rows, medium mixed KeySerialized, Pr[null]=0.1
                        time:   [194.02 µs 195.11 µs 196.12 µs]
                        change: [-0.2874% +0.3802% +1.0884%] (p = 0.30 > 0.05)
                        No change in performance detected.

vec ser 1024 rows, large fixed KeySerialized, Pr[null]=0
                        time:   [220.82 µs 221.27 µs 221.70 µs]
                        change: [-0.9192% -0.5932% -0.2553%] (p = 0.00 < 0.05)
                        Change within noise threshold.
Found 1 outliers among 100 measurements (1.00%)
  1 (1.00%) high mild

vec ser 1024 rows, large fixed KeySerialized, Pr[null]=0.01
                        time:   [219.07 µs 220.22 µs 221.25 µs]
                        change: [+0.0600% +0.6551% +1.2091%] (p = 0.03 < 0.05)
                        Change within noise threshold.
Found 9 outliers among 100 measurements (9.00%)
  8 (8.00%) low mild
  1 (1.00%) high mild

vec ser 1024 rows, large fixed KeySerialized, Pr[null]=0.1
                        time:   [240.19 µs 241.32 µs 242.38 µs]
                        change: [+1.5904% +2.2500% +2.9459%] (p = 0.00 < 0.05)
                        Performance has regressed.

vec ser 1024 rows, large mixed KeySerialized, Pr[null]=0
                        time:   [302.27 µs 302.87 µs 303.45 µs]
                        change: [+0.9549% +1.2504% +1.5550%] (p = 0.00 < 0.05)
                        Change within noise threshold.
Found 1 outliers among 100 measurements (1.00%)
  1 (1.00%) high mild

vec ser 1024 rows, large mixed KeySerialized, Pr[null]=0.01
                        time:   [294.23 µs 295.07 µs 295.84 µs]
                        change: [+0.7122% +1.0574% +1.3710%] (p = 0.00 < 0.05)
                        Change within noise threshold.

vec ser 1024 rows, large mixed KeySerialized, Pr[null]=0.1
                        time:   [301.55 µs 302.54 µs 303.48 µs]
                        change: [+1.1483% +1.5710% +1.9594%] (p = 0.00 < 0.05)
                        Performance has regressed.
Found 1 outliers among 100 measurements (1.00%)
  1 (1.00%) high mild

vec ser 1024 rows, unaligned small fixed KeySerialized, Pr[null]=0
                        time:   [92.147 µs 92.437 µs 92.711 µs]
                        change: [+2.3549% +2.8619% +3.3651%] (p = 0.00 < 0.05)
                        Performance has regressed.
Found 1 outliers among 100 measurements (1.00%)
  1 (1.00%) low mild

vec ser 1024 rows, unaligned small fixed KeySerialized, Pr[null]=0.01
                        time:   [85.573 µs 86.591 µs 87.646 µs]
                        change: [-2.4811% -0.9738% +0.5140%] (p = 0.20 > 0.05)
                        No change in performance detected.

vec ser 1024 rows, unaligned small fixed KeySerialized, Pr[null]=0.1
                        time:   [92.135 µs 93.258 µs 94.355 µs]
                        change: [-4.7850% -3.5283% -2.2116%] (p = 0.00 < 0.05)
                        Performance has improved.

vec ser 1024 rows, unaligned medium fixed KeySerialized, Pr[null]=0
                        time:   [141.33 µs 141.76 µs 142.17 µs]
                        change: [+2.6841% +3.1342% +3.5637%] (p = 0.00 < 0.05)
                        Performance has regressed.
Found 2 outliers among 100 measurements (2.00%)
  1 (1.00%) low mild
  1 (1.00%) high mild

vec ser 1024 rows, unaligned medium fixed KeySerialized, Pr[null]=0.01
                        time:   [139.48 µs 140.45 µs 141.33 µs]
                        change: [+2.7092% +3.7279% +4.7203%] (p = 0.00 < 0.05)
                        Performance has regressed.
Found 12 outliers among 100 measurements (12.00%)
  12 (12.00%) low mild

vec ser 1024 rows, unaligned medium fixed KeySerialized, Pr[null]=0.1
                        time:   [150.45 µs 151.44 µs 152.32 µs]
                        change: [+3.3537% +4.2786% +5.1649%] (p = 0.00 < 0.05)
                        Performance has regressed.
Found 10 outliers among 100 measurements (10.00%)
  9 (9.00%) low mild
  1 (1.00%) high mild

vec ser 1024 rows, unaligned large fixed KeySerialized, Pr[null]=0
                        time:   [235.25 µs 235.76 µs 236.25 µs]
                        change: [+1.4864% +1.7945% +2.1127%] (p = 0.00 < 0.05)
                        Performance has regressed.

vec ser 1024 rows, unaligned large fixed KeySerialized, Pr[null]=0.01
                        time:   [232.85 µs 234.06 µs 235.22 µs]
                        change: [+0.4030% +0.9792% +1.5228%] (p = 0.00 < 0.05)
                        Change within noise threshold.
Found 8 outliers among 100 measurements (8.00%)
  8 (8.00%) low mild

vec ser 1024 rows, unaligned large fixed KeySerialized, Pr[null]=0.1
                        time:   [251.60 µs 252.91 µs 254.24 µs]
                        change: [+0.3197% +0.9349% +1.5734%] (p = 0.01 < 0.05)
                        Change within noise threshold.

@kwannoel
Copy link
Contributor Author

kwannoel commented May 5, 2023

Ready for review.

@kwannoel
Copy link
Contributor Author

kwannoel commented May 5, 2023

I guess Struct and list might be expensive to estimate, but I don't think people will often use it as group key. Tracking it #9625 as known issue.

@codecov
Copy link

codecov bot commented May 5, 2023

Codecov Report

Merging #9556 (233b339) into main (97ed191) will decrease coverage by 0.01%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##             main    #9556      +/-   ##
==========================================
- Coverage   70.74%   70.73%   -0.01%     
==========================================
  Files        1233     1233              
  Lines      206601   206636      +35     
==========================================
+ Hits       146156   146173      +17     
- Misses      60445    60463      +18     
Flag Coverage Δ
rust 70.73% <100.00%> (-0.01%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files Coverage Δ
src/common/src/array/data_chunk.rs 87.42% <100.00%> (-0.91%) ⬇️
src/common/src/hash/key.rs 80.57% <100.00%> (+0.08%) ⬆️

... and 4 files with indirect coverage changes

📣 We’re building smart automated test selection to slash your CI/CD build times. Learn more

@kwannoel kwannoel changed the title perf(hashkey): refine the memory reserving for SerializedKey [WIP] perf(hashkey): refine the memory reserving for SerializedKey May 5, 2023
Copy link
Contributor

@st1page st1page left a comment

Choose a reason for hiding this comment

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

LGTM

src/common/src/array/data_chunk.rs Outdated Show resolved Hide resolved
@kwannoel kwannoel enabled auto-merge May 5, 2023 15:16
@kwannoel kwannoel added this pull request to the merge queue May 5, 2023
Merged via the queue into main with commit e60a5f4 May 5, 2023
@kwannoel kwannoel deleted the kwannoel/opt-group-key branch May 5, 2023 16:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

perf(hashkey): refine the memory reserving for SerializedKey
2 participants