Details
-
New Feature
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
None
Description
There is some question of whether these kernels allocate optimally- for example when Filtering or Taking strings it might be more efficient to pass over the filter/indices twice, first to determine how much character storage will be needed then again into allocated memory: https://github.com/apache/arrow/pull/4531#discussion_r297160457
Additionally, these kernels could probably make good use of scatter/gather SIMD instructions.
Furthermore, Filter's bitmap is currently lazily expanded into the indices of elements to be appended to the output array. It would probably be more efficient to expand to indices in batches, then gather using an index batch.
Attachments
Issue Links
- is related to
-
ARROW-9045 [C++] Improve and expand Take/Filter benchmarks
- Resolved
-
ARROW-9075 [C++] Optimize Filter implementation
- Resolved
- relates to
-
ARROW-8894 [C++] C++ array kernels framework and execution buildout (umbrella issue)
- Open
-
ARROW-8500 [C++] Use selection vectors in Filter implementation for record batches, tables
- Resolved
- links to