andygrove opened a new pull request, #23537:
URL: https://github.com/apache/datafusion/pull/23537
> This PR was created by an LLM as a draft PR. I will mark it as ready for
review after human review.
## Which issue does this PR close?
N/A — autonomous exploratory PR.
## Rationale for this change
Removed the per-row `BooleanArray::slice` allocation in map key lookup by
scanning the key-comparison bitmap in place over each row's offset range.
## What changes are included in this PR?
Removed the per-row `BooleanArray::slice` allocation in map key lookup by
scanning the key-comparison bitmap in place over each row's offset range.
## Are these changes tested?
Correctness: unit tests + seeded differential fuzz (bit-identical Arrow
output vs `main`).
Benchmark (criterion):
- get_field_map_1024_entries_16_last: 6.23% faster (base 42011ns -> cand
39394ns)
- get_field_map_1024_entries_4_missing: 12.267% faster (base 19070ns -> cand
16730ns)
- get_field_map_8192_entries_4_last: 8.122% faster (base 168450ns -> cand
154769ns)
- get_field_map_1024_entries_4_last: 11.166% faster (base 23229ns -> cand
20635ns)
- get_field_map_1024_entries_4_first: 15.396% faster (base 20877ns -> cand
17663ns)
Full criterion output:
```text
get_field_map_1024_entries_4_first
time: [17.664 µs 17.701 µs 17.756 µs]
change: [−15.807% −15.396% −14.964%] (p = 0.00 <
0.05)
Performance has improved.
Found 6 outliers among 100 measurements (6.00%)
4 (4.00%) high mild
2 (2.00%) high severe
get_field_map_1024_entries_4_last
time: [20.450 µs 20.499 µs 20.546 µs]
change: [−11.535% −11.166% −10.793%] (p = 0.00 <
0.05)
Performance has improved.
Found 6 outliers among 100 measurements (6.00%)
2 (2.00%) low mild
4 (4.00%) high mild
get_field_map_1024_entries_16_last
time: [39.406 µs 39.460 µs 39.516 µs]
change: [−6.9089% −6.2297% −5.5570%] (p = 0.00 <
0.05)
Performance has improved.
Found 11 outliers among 100 measurements (11.00%)
6 (6.00%) low severe
2 (2.00%) high mild
3 (3.00%) high severe
get_field_map_1024_entries_4_missing
time: [16.755 µs 16.775 µs 16.796 µs]
change: [−12.675% −12.267% −11.888%] (p = 0.00 <
0.05)
Performance has improved.
Found 6 outliers among 100 measurements (6.00%)
4 (4.00%) high mild
2 (2.00%) high severe
get_field_map_8192_entries_4_last
time: [154.23 µs 154.92 µs 155.72 µs]
change: [−8.5962% −8.1217% −7.6240%] (p = 0.00 <
0.05)
Performance has improved.
Found 12 outliers among 100 measurements (12.00%)
11 (11.00%) high mild
1 (1.00%) high severe
```
## Are there any user-facing changes?
<!--
If there are user-facing changes then we may require documentation to be
updated before approving the PR.
-->
<!--
If there are any breaking changes to public APIs, please add the `api
change` label.
-->
--
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]