apache / apache/arrow-rs

Improve filter performance some more with `fold` implementations

Open
#9,408 0 comments 0 reactions 0 assignees View on GitHub
performance
Dominant language
Rust
Stars
3.6k
Forks
1.3k
Avg merge
2d 18h
Merged PRs (30d)
169

Description

**Is your feature request related to a problem or challenge? Please describe what you are trying to do.**
As shown in https://github.com/apache/arrow-rs/pull/9284 we can optimize filter kernels (and others that use the iterators) a bit more by implementing `fold` for the used iterators. This will generate faster code than `iter` as it can skip redundant checks and better inline.

**Describe the solution you'd like**
* Implement `fold` for the different iterators
* use `.iter().for_each(` in consumers (e.g. `from_trusted_len_iterator`, etc.) to use it

**Describe alternatives you've considered**

**Additional context**

Contributor guide

Open the contributing guide

Research direction

Review the filter kernels and iterator implementations discussed in PR 9284, then inspect consumers such as from_trusted_len_iterator. Confirm that the relevant iterators implement fold and that consumers use .iter().for_each; compare the resulting behavior and performance with the optimization described in the issue.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
performance
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.