You are viewing a plain text version of this content. The canonical link for it is here.
Posted to github@arrow.apache.org by GitBox <gi...@apache.org> on 2020/12/17 13:18:47 UTC

[GitHub] [arrow] jorgecarleitao opened a new pull request #8954: ARROW-10540: [Rust] Extended filter kernel to all types and improved performance (200x)

jorgecarleitao opened a new pull request #8954:
URL: https://github.com/apache/arrow/pull/8954


   This PR improves the filter kernel:
   
   * made the filter benchmarks more realistic
   * performance improved by 1.2-200x
   * filter now supports all types supported by `MutableArrayData`
   * removed 500 LOC
   
   There are two novel ideas here:
   
   1. it minimizes the number of re-allocations when building the filtered array, both for single filter and multi-filter operations.
   
   2. For single filter operations, it leverages iterators to create the new array on the fly. For multi filter operations, it persists the iterator's result in a vector and iterates over it per array.
   
   This PR also improves the performance of `MutableArrayData` by avoiding some bound checks via `unsafe` (properly documented).
   
   Summary of the benchmarks:
   
   |  benchmark | variation (%) |
   |-------------- | -------------- | 
   | filter context string high selectivity | -26.3 | 
   | filter context u8 w NULLs high selectivity | -26.8 | 
   | filter context f32 high selectivity | -28.0 | 
   | filter u8 low selectivity | -43.5 | 
   | filter u8 high selectivity | -66.5 | 
   | filter context u8 w NULLs low selectivity | -72.7 | 
   | filter context u8 low selectivity | -73.5 | 
   | filter context f32 low selectivity | -77.7 | 
   | filter context string low selectivity | -78.6 | 
   | filter context u8 high selectivity | -78.8 | 
   | filter u8 | -98.7 | 
   | filter context f32 | -99.3 | 
   | filter context string | -99.4 | 
   | filter context u8 | -99.4 | 
   | filter context u8 w NULLs | -99.5 |
   
   Code used to benchmark:
   ```bash
   git checkout 54da4378d138df12bd4e09a68b0f4c80218834c7
   cargo bench --bench filter_kernels
   git checkout mutable_filter2
   cargo bench --bench filter_kernels
   ```
   
   Benchmark result:
   ```
   Switched to branch 'mutable_filter2'
      Compiling arrow v3.0.0-SNAPSHOT (/Users/jorgecarleitao/projects/arrow/rust/arrow)
       Finished bench [optimized] target(s) in 1m 01s
        Running /Users/jorgecarleitao/projects/arrow/rust/target/release/deps/filter_kernels-5208f9a404de52c9
   Gnuplot not found, using plotters backend
   filter u8               time:   [5.2289 us 5.4746 us 5.7646 us]                       
                           change: [-98.691% -98.666% -98.637%] (p = 0.00 < 0.05)
                           Performance has improved.
   Found 16 outliers among 100 measurements (16.00%)
     3 (3.00%) high mild
     13 (13.00%) high severe
   
   filter u8 high selectivity                                                                             
                           time:   [7.2731 us 7.2838 us 7.2953 us]
                           change: [-66.869% -66.505% -66.140%] (p = 0.00 < 0.05)
                           Performance has improved.
   Found 9 outliers among 100 measurements (9.00%)
     3 (3.00%) high mild
     6 (6.00%) high severe
   
   filter u8 low selectivity                                                                             
                           time:   [3.6938 us 3.6993 us 3.7046 us]
                           change: [-43.987% -43.525% -43.104%] (p = 0.00 < 0.05)
                           Performance has improved.
   Found 6 outliers among 100 measurements (6.00%)
     3 (3.00%) high mild
     3 (3.00%) high severe
   
   filter context u8       time:   [2.3932 us 2.3973 us 2.4013 us]                               
                           change: [-99.392% -99.388% -99.384%] (p = 0.00 < 0.05)
                           Performance has improved.
   Found 12 outliers among 100 measurements (12.00%)
     3 (3.00%) low mild
     2 (2.00%) high mild
     7 (7.00%) high severe
   
   filter context u8 high selectivity                                                                             
                           time:   [4.2641 us 4.2726 us 4.2828 us]
                           change: [-79.030% -78.771% -78.497%] (p = 0.00 < 0.05)
                           Performance has improved.
   Found 11 outliers among 100 measurements (11.00%)
     3 (3.00%) high mild
     8 (8.00%) high severe
   
   filter context u8 low selectivity                                                                             
                           time:   [1.3684 us 1.3735 us 1.3787 us]
                           change: [-73.826% -73.495% -73.208%] (p = 0.00 < 0.05)
                           Performance has improved.
   Found 3 outliers among 100 measurements (3.00%)
     2 (2.00%) high mild
     1 (1.00%) high severe
   
   filter context u8 w NULLs                                                                             
                           time:   [2.7073 us 2.7111 us 2.7151 us]
                           change: [-99.540% -99.535% -99.530%] (p = 0.00 < 0.05)
                           Performance has improved.
   Found 12 outliers among 100 measurements (12.00%)
     1 (1.00%) low mild
     2 (2.00%) high mild
     9 (9.00%) high severe
   
   filter context u8 w NULLs high selectivity                                                                            
                           time:   [280.66 us 290.65 us 306.21 us]
                           change: [-28.378% -26.780% -24.548%] (p = 0.00 < 0.05)
                           Performance has improved.
   Found 16 outliers among 100 measurements (16.00%)
     7 (7.00%) high mild
     9 (9.00%) high severe
   
   filter context u8 w NULLs low selectivity                                                                             
                           time:   [1.6484 us 1.6536 us 1.6603 us]
                           change: [-72.983% -72.674% -72.356%] (p = 0.00 < 0.05)
                           Performance has improved.
   Found 16 outliers among 100 measurements (16.00%)
     1 (1.00%) low mild
     4 (4.00%) high mild
     11 (11.00%) high severe
   
   filter context f32      time:   [4.6148 us 4.6205 us 4.6259 us]                                 
                           change: [-99.262% -99.251% -99.237%] (p = 0.00 < 0.05)
                           Performance has improved.
   Found 19 outliers among 100 measurements (19.00%)
     1 (1.00%) low severe
     4 (4.00%) low mild
     1 (1.00%) high mild
     13 (13.00%) high severe
   
   filter context f32 high selectivity                                                                            
                           time:   [285.17 us 286.05 us 287.16 us]
                           change: [-28.812% -28.042% -27.358%] (p = 0.00 < 0.05)
                           Performance has improved.
   Found 13 outliers among 100 measurements (13.00%)
     3 (3.00%) high mild
     10 (10.00%) high severe
   
   filter context f32 low selectivity                                                                             
                           time:   [1.5320 us 1.5450 us 1.5648 us]
                           change: [-77.882% -77.690% -77.468%] (p = 0.00 < 0.05)
                           Performance has improved.
   Found 5 outliers among 100 measurements (5.00%)
     3 (3.00%) high mild
     2 (2.00%) high severe
   
   filter context string   time:   [6.0464 us 6.0541 us 6.0614 us]                                   
                           change: [-99.362% -99.357% -99.350%] (p = 0.00 < 0.05)
                           Performance has improved.
   Found 4 outliers among 100 measurements (4.00%)
     4 (4.00%) high severe
   
   Benchmarking filter context string high selectivity: Warming up for 3.0000 s
   Warning: Unable to complete 100 samples in 5.0s. You may wish to increase target time to 5.2s, enable flat sampling, or reduce sample count to 60.
   filter context string high selectivity                                                                             
                           time:   [936.97 us 940.91 us 945.24 us]
                           change: [-26.991% -26.325% -25.679%] (p = 0.00 < 0.05)
                           Performance has improved.
   Found 16 outliers among 100 measurements (16.00%)
     10 (10.00%) high mild
     6 (6.00%) high severe
   
   filter context string low selectivity                                                                             
                           time:   [1.7669 us 1.7707 us 1.7749 us]
                           change: [-79.102% -78.624% -78.201%] (p = 0.00 < 0.05)
                           Performance has improved.
   Found 7 outliers among 100 measurements (7.00%)
     3 (3.00%) high mild
     4 (4.00%) high severe
   ```
   


----------------------------------------------------------------
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.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [arrow] jorgecarleitao edited a comment on pull request #8954: ARROW-10540: [Rust] Extended filter kernel to all types and improved performance

Posted by GitBox <gi...@apache.org>.
jorgecarleitao edited a comment on pull request #8954:
URL: https://github.com/apache/arrow/pull/8954#issuecomment-747505671


   I am moving this to draft as I do not believe the 200x. It looks too good to be true.


----------------------------------------------------------------
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.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [arrow] github-actions[bot] commented on pull request #8954: ARROW-10540: [Rust] Extended filter kernel to all types and improved performance (200x)

Posted by GitBox <gi...@apache.org>.
github-actions[bot] commented on pull request #8954:
URL: https://github.com/apache/arrow/pull/8954#issuecomment-747440971


   https://issues.apache.org/jira/browse/ARROW-10540


----------------------------------------------------------------
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.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [arrow] jorgecarleitao commented on pull request #8954: ARROW-10540: [Rust] Extended filter kernel to all types and improved performance (200x)

Posted by GitBox <gi...@apache.org>.
jorgecarleitao commented on pull request #8954:
URL: https://github.com/apache/arrow/pull/8954#issuecomment-747505671


   I am moving this to draft as I do not believe the 200x. It seems too much.


----------------------------------------------------------------
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.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [arrow] jorgecarleitao closed pull request #8954: ARROW-10540: [Rust] Extended filter kernel to all types and improved performance

Posted by GitBox <gi...@apache.org>.
jorgecarleitao closed pull request #8954:
URL: https://github.com/apache/arrow/pull/8954


   


----------------------------------------------------------------
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.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [arrow] mqy edited a comment on pull request #8954: ARROW-10540: [Rust] Extended filter kernel to all types and improved performance (200x)

Posted by GitBox <gi...@apache.org>.
mqy edited a comment on pull request #8954:
URL: https://github.com/apache/arrow/pull/8954#issuecomment-747475634


   Amazing, great work! Here is my bench result on mac book pro 2018:
   
   ```
   $ git checkout mutable_filter2
   Previous HEAD position was 54da4378d Improved filter bench.
   Switched to branch 'mutable_filter2'
   Your branch is up to date with 'jorgecarleitao/mutable_filter2'.
   $ cargo bench --bench filter_kernels
      Compiling arrow v3.0.0-SNAPSHOT (/Users/mqy/tools/data/arrow/rust/arrow)
       Finished bench [optimized] target(s) in 30.81s
        Running target/release/deps/filter_kernels-9a777356dd1c1b39
   Gnuplot not found, using plotters backend
   filter u8               time:   [3.3223 us 3.3282 us 3.3340 us]                       
                           change: [-99.062% -99.059% -99.056%] (p = 0.00 < 0.05)
                           Performance has improved.
   Found 6 outliers among 100 measurements (6.00%)
     3 (3.00%) low mild
     3 (3.00%) high severe
   
   filter u8 high selectivity                                                                             
                           time:   [6.6873 us 6.8811 us 7.0893 us]
                           change: [-65.458% -64.142% -62.812%] (p = 0.00 < 0.05)
                           Performance has improved.
   Found 7 outliers among 100 measurements (7.00%)
     7 (7.00%) high mild
   
   filter u8 low selectivity                                                                             
                           time:   [2.6626 us 2.6704 us 2.6783 us]
                           change: [-53.949% -53.755% -53.558%] (p = 0.00 < 0.05)
                           Performance has improved.
   Found 1 outliers among 100 measurements (1.00%)
     1 (1.00%) high mild
   
   filter context u8       time:   [1.6725 us 1.6814 us 1.6902 us]                               
                           change: [-99.525% -99.522% -99.519%] (p = 0.00 < 0.05)
                           Performance has improved.
   Found 1 outliers among 100 measurements (1.00%)
     1 (1.00%) low mild
   
   filter context u8 high selectivity                                                                             
                           time:   [4.3977 us 4.5770 us 4.7594 us]
                           change: [-75.323% -73.815% -72.286%] (p = 0.00 < 0.05)
                           Performance has improved.
   Found 11 outliers among 100 measurements (11.00%)
     11 (11.00%) high mild
   
   filter context u8 low selectivity                                                                             
                           time:   [1.1797 us 1.1843 us 1.1890 us]
                           change: [-74.379% -74.076% -73.824%] (p = 0.00 < 0.05)
                           Performance has improved.
   
   filter context u8 w NULLs                                                                             
                           time:   [2.0055 us 2.0120 us 2.0187 us]
                           change: [-99.621% -99.619% -99.618%] (p = 0.00 < 0.05)
                           Performance has improved.
   Found 2 outliers among 100 measurements (2.00%)
     1 (1.00%) low mild
     1 (1.00%) high mild
   
   filter context u8 w NULLs high selectivity                                                                            
                           time:   [243.76 us 244.08 us 244.41 us]
                           change: [-32.511% -32.318% -32.144%] (p = 0.00 < 0.05)
                           Performance has improved.
   
   filter context u8 w NULLs low selectivity                                                                             
                           time:   [1.4073 us 1.4151 us 1.4230 us]
                           change: [-73.174% -72.860% -72.574%] (p = 0.00 < 0.05)
                           Performance has improved.
   Found 2 outliers among 100 measurements (2.00%)
     2 (2.00%) high mild
   
   filter context f32      time:   [3.7693 us 3.7804 us 3.7918 us]                                
                           change: [-99.341% -99.337% -99.332%] (p = 0.00 < 0.05)
                           Performance has improved.
   Found 8 outliers among 100 measurements (8.00%)
     3 (3.00%) low mild
     4 (4.00%) high mild
     1 (1.00%) high severe
   
   filter context f32 high selectivity                                                                            
                           time:   [257.52 us 258.42 us 259.27 us]
                           change: [-31.098% -30.752% -30.429%] (p = 0.00 < 0.05)
                           Performance has improved.
   Found 2 outliers among 100 measurements (2.00%)
     2 (2.00%) high mild
   
   filter context f32 low selectivity                                                                             
                           time:   [1.3838 us 1.3901 us 1.3964 us]
                           change: [-77.474% -77.227% -77.021%] (p = 0.00 < 0.05)
                           Performance has improved.
   
   filter context string   time:   [4.7862 us 4.8040 us 4.8206 us]                                   
                           change: [-99.393% -99.389% -99.386%] (p = 0.00 < 0.05)
                           Performance has improved.
   Found 11 outliers among 100 measurements (11.00%)
     1 (1.00%) low mild
     7 (7.00%) high mild
     3 (3.00%) high severe
   
   filter context string high selectivity                                                                            
                           time:   [833.56 us 836.78 us 843.25 us]
                           change: [-20.015% -19.639% -19.202%] (p = 0.00 < 0.05)
                           Performance has improved.
   Found 9 outliers among 100 measurements (9.00%)
     2 (2.00%) low mild
     3 (3.00%) high mild
     4 (4.00%) high severe
   
   filter context string low selectivity                                                                             
                           time:   [1.6389 us 1.6486 us 1.6584 us]
                           change: [-76.728% -76.552% -76.376%] (p = 0.00 < 0.05)
                           Performance has improved.
   Found 1 outliers among 100 measurements (1.00%)
     1 (1.00%) high mild
   ```


----------------------------------------------------------------
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.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [arrow] mqy commented on pull request #8954: ARROW-10540: [Rust] Extended filter kernel to all types and improved performance (200x)

Posted by GitBox <gi...@apache.org>.
mqy commented on pull request #8954:
URL: https://github.com/apache/arrow/pull/8954#issuecomment-747475634


   Amazing, great work! Here is my bench result on mac book pro 2018:
   
   $ git checkout mutable_filter2
   Previous HEAD position was 54da4378d Improved filter bench.
   Switched to branch 'mutable_filter2'
   Your branch is up to date with 'jorgecarleitao/mutable_filter2'.
   $ cargo bench --bench filter_kernels
      Compiling arrow v3.0.0-SNAPSHOT (/Users/mqy/tools/data/arrow/rust/arrow)
       Finished bench [optimized] target(s) in 30.81s
        Running target/release/deps/filter_kernels-9a777356dd1c1b39
   Gnuplot not found, using plotters backend
   filter u8               time:   [3.3223 us 3.3282 us 3.3340 us]                       
                           change: [**-99.062% -99.059% -99.056%**] (p = 0.00 < 0.05)
                           Performance has improved.
   Found 6 outliers among 100 measurements (6.00%)
     3 (3.00%) low mild
     3 (3.00%) high severe
   
   filter u8 high selectivity                                                                             
                           time:   [6.6873 us 6.8811 us 7.0893 us]
                           change: [**-65.458% -64.142% -62.812%**] (p = 0.00 < 0.05)
                           Performance has improved.
   Found 7 outliers among 100 measurements (7.00%)
     7 (7.00%) high mild
   
   filter u8 low selectivity                                                                             
                           time:   [2.6626 us 2.6704 us 2.6783 us]
                           change: [**-53.949% -53.755% -53.558%**] (p = 0.00 < 0.05)
                           Performance has improved.
   Found 1 outliers among 100 measurements (1.00%)
     1 (1.00%) high mild
   
   filter context u8       time:   [1.6725 us 1.6814 us 1.6902 us]                               
                           change: [**-99.525% -99.522% -99.519%**] (p = 0.00 < 0.05)
                           Performance has improved.
   Found 1 outliers among 100 measurements (1.00%)
     1 (1.00%) low mild
   
   filter context u8 high selectivity                                                                             
                           time:   [4.3977 us 4.5770 us 4.7594 us]
                           change: [**-75.323% -73.815% -72.286%**] (p = 0.00 < 0.05)
                           Performance has improved.
   Found 11 outliers among 100 measurements (11.00%)
     11 (11.00%) high mild
   
   filter context u8 low selectivity                                                                             
                           time:   [1.1797 us 1.1843 us 1.1890 us]
                           change: [**-74.379% -74.076% -73.824%**] (p = 0.00 < 0.05)
                           Performance has improved.
   
   filter context u8 w NULLs                                                                             
                           time:   [2.0055 us 2.0120 us 2.0187 us]
                           change: [**-99.621% -99.619% -99.618%**] (p = 0.00 < 0.05)
                           Performance has improved.
   Found 2 outliers among 100 measurements (2.00%)
     1 (1.00%) low mild
     1 (1.00%) high mild
   
   filter context u8 w NULLs high selectivity                                                                            
                           time:   [243.76 us 244.08 us 244.41 us]
                           change: [**-32.511% -32.318% -32.144%**] (p = 0.00 < 0.05)
                           Performance has improved.
   
   filter context u8 w NULLs low selectivity                                                                             
                           time:   [1.4073 us 1.4151 us 1.4230 us]
                           change: [**-73.174% -72.860% -72.574%**] (p = 0.00 < 0.05)
                           Performance has improved.
   Found 2 outliers among 100 measurements (2.00%)
     2 (2.00%) high mild
   
   filter context f32      time:   [3.7693 us 3.7804 us 3.7918 us]                                
                           change: [**-99.341% -99.337% -99.332%**] (p = 0.00 < 0.05)
                           Performance has improved.
   Found 8 outliers among 100 measurements (8.00%)
     3 (3.00%) low mild
     4 (4.00%) high mild
     1 (1.00%) high severe
   
   filter context f32 high selectivity                                                                            
                           time:   [257.52 us 258.42 us 259.27 us]
                           change: [**-31.098% -30.752% -30.429%**] (p = 0.00 < 0.05)
                           Performance has improved.
   Found 2 outliers among 100 measurements (2.00%)
     2 (2.00%) high mild
   
   filter context f32 low selectivity                                                                             
                           time:   [1.3838 us 1.3901 us 1.3964 us]
                           change: [**-77.474% -77.227% -77.021%**] (p = 0.00 < 0.05)
                           Performance has improved.
   
   filter context string   time:   [4.7862 us 4.8040 us 4.8206 us]                                   
                           change: [**-99.393% -99.389% -99.386%**] (p = 0.00 < 0.05)
                           Performance has improved.
   Found 11 outliers among 100 measurements (11.00%)
     1 (1.00%) low mild
     7 (7.00%) high mild
     3 (3.00%) high severe
   
   filter context string high selectivity                                                                            
                           time:   [833.56 us 836.78 us 843.25 us]
                           change: [**-20.015% -19.639% -19.202%**] (p = 0.00 < 0.05)
                           Performance has improved.
   Found 9 outliers among 100 measurements (9.00%)
     2 (2.00%) low mild
     3 (3.00%) high mild
     4 (4.00%) high severe
   
   filter context string low selectivity                                                                             
                           time:   [1.6389 us 1.6486 us 1.6584 us]
                           change: [**-76.728% -76.552% -76.376%**] (p = 0.00 < 0.05)
                           Performance has improved.
   Found 1 outliers among 100 measurements (1.00%)
     1 (1.00%) high mild


----------------------------------------------------------------
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.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [arrow] mqy edited a comment on pull request #8954: ARROW-10540: [Rust] Extended filter kernel to all types and improved performance (200x)

Posted by GitBox <gi...@apache.org>.
mqy edited a comment on pull request #8954:
URL: https://github.com/apache/arrow/pull/8954#issuecomment-747475634


   Amazing, great work! Here is my bench result on mac book pro 2018:
   
   ```
   $ git checkout mutable_filter2
   Previous HEAD position was 54da4378d Improved filter bench.
   Switched to branch 'mutable_filter2'
   Your branch is up to date with 'jorgecarleitao/mutable_filter2'.
   $ cargo bench --bench filter_kernels
      Compiling arrow v3.0.0-SNAPSHOT (/Users/mqy/tools/data/arrow/rust/arrow)
       Finished bench [optimized] target(s) in 30.81s
        Running target/release/deps/filter_kernels-9a777356dd1c1b39
   Gnuplot not found, using plotters backend
   filter u8               time:   [3.3223 us 3.3282 us 3.3340 us]                       
                           change: [**-99.062% -99.059% -99.056%**] (p = 0.00 < 0.05)
                           Performance has improved.
   Found 6 outliers among 100 measurements (6.00%)
     3 (3.00%) low mild
     3 (3.00%) high severe
   
   filter u8 high selectivity                                                                             
                           time:   [6.6873 us 6.8811 us 7.0893 us]
                           change: [**-65.458% -64.142% -62.812%**] (p = 0.00 < 0.05)
                           Performance has improved.
   Found 7 outliers among 100 measurements (7.00%)
     7 (7.00%) high mild
   
   filter u8 low selectivity                                                                             
                           time:   [2.6626 us 2.6704 us 2.6783 us]
                           change: [**-53.949% -53.755% -53.558%**] (p = 0.00 < 0.05)
                           Performance has improved.
   Found 1 outliers among 100 measurements (1.00%)
     1 (1.00%) high mild
   
   filter context u8       time:   [1.6725 us 1.6814 us 1.6902 us]                               
                           change: [**-99.525% -99.522% -99.519%**] (p = 0.00 < 0.05)
                           Performance has improved.
   Found 1 outliers among 100 measurements (1.00%)
     1 (1.00%) low mild
   
   filter context u8 high selectivity                                                                             
                           time:   [4.3977 us 4.5770 us 4.7594 us]
                           change: [**-75.323% -73.815% -72.286%**] (p = 0.00 < 0.05)
                           Performance has improved.
   Found 11 outliers among 100 measurements (11.00%)
     11 (11.00%) high mild
   
   filter context u8 low selectivity                                                                             
                           time:   [1.1797 us 1.1843 us 1.1890 us]
                           change: [**-74.379% -74.076% -73.824%**] (p = 0.00 < 0.05)
                           Performance has improved.
   
   filter context u8 w NULLs                                                                             
                           time:   [2.0055 us 2.0120 us 2.0187 us]
                           change: [**-99.621% -99.619% -99.618%**] (p = 0.00 < 0.05)
                           Performance has improved.
   Found 2 outliers among 100 measurements (2.00%)
     1 (1.00%) low mild
     1 (1.00%) high mild
   
   filter context u8 w NULLs high selectivity                                                                            
                           time:   [243.76 us 244.08 us 244.41 us]
                           change: [**-32.511% -32.318% -32.144%**] (p = 0.00 < 0.05)
                           Performance has improved.
   
   filter context u8 w NULLs low selectivity                                                                             
                           time:   [1.4073 us 1.4151 us 1.4230 us]
                           change: [**-73.174% -72.860% -72.574%**] (p = 0.00 < 0.05)
                           Performance has improved.
   Found 2 outliers among 100 measurements (2.00%)
     2 (2.00%) high mild
   
   filter context f32      time:   [3.7693 us 3.7804 us 3.7918 us]                                
                           change: [**-99.341% -99.337% -99.332%**] (p = 0.00 < 0.05)
                           Performance has improved.
   Found 8 outliers among 100 measurements (8.00%)
     3 (3.00%) low mild
     4 (4.00%) high mild
     1 (1.00%) high severe
   
   filter context f32 high selectivity                                                                            
                           time:   [257.52 us 258.42 us 259.27 us]
                           change: [**-31.098% -30.752% -30.429%**] (p = 0.00 < 0.05)
                           Performance has improved.
   Found 2 outliers among 100 measurements (2.00%)
     2 (2.00%) high mild
   
   filter context f32 low selectivity                                                                             
                           time:   [1.3838 us 1.3901 us 1.3964 us]
                           change: [**-77.474% -77.227% -77.021%**] (p = 0.00 < 0.05)
                           Performance has improved.
   
   filter context string   time:   [4.7862 us 4.8040 us 4.8206 us]                                   
                           change: [**-99.393% -99.389% -99.386%**] (p = 0.00 < 0.05)
                           Performance has improved.
   Found 11 outliers among 100 measurements (11.00%)
     1 (1.00%) low mild
     7 (7.00%) high mild
     3 (3.00%) high severe
   
   filter context string high selectivity                                                                            
                           time:   [833.56 us 836.78 us 843.25 us]
                           change: [**-20.015% -19.639% -19.202%**] (p = 0.00 < 0.05)
                           Performance has improved.
   Found 9 outliers among 100 measurements (9.00%)
     2 (2.00%) low mild
     3 (3.00%) high mild
     4 (4.00%) high severe
   
   filter context string low selectivity                                                                             
                           time:   [1.6389 us 1.6486 us 1.6584 us]
                           change: [**-76.728% -76.552% -76.376%**] (p = 0.00 < 0.05)
                           Performance has improved.
   Found 1 outliers among 100 measurements (1.00%)
     1 (1.00%) high mild
   ```


----------------------------------------------------------------
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.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org