[Java] Improving Arrow Vector Reading performance
- Langage dominant
- Java
- Étoiles
- 94
- Forks
- 152
- Merge moyen
- 3 j 16 h
- PR mergées (30 j)
- 11
Description
Currently the read interface of Java Arrow Vector is quite slow because the access operation has to go through validity bit check and boundary check before it can actually load the data. Such a safety check incurs unnecessary overhead in actually computation.
The Arrow Vector and ArrowBuf should expose unsafe methods for advanced users to directly access underlying data without null check and boundary check.
**Reporter**: [Yurui Zhou](https://issues.apache.org/jira/browse/ARROW-5197) / @yuruiz
#### Subtasks:
- [ ] [[Java] Add hasNull flag to Vectors](https://github.com/apache/arrow-java/issues/415)
- [X] [[Java] Add unsafe access method to ArrowBuf](https://github.com/apache/arrow/issues/21674)
#### Related issues:
- [[Java] Add accessor methods for data buffers that skip null checking](https://github.com/apache/arrow/issues/15627) (relates to)
- [[Java] Provide light-weight arrow APIs](https://github.com/apache/arrow/issues/21675) (is related to)
#### PRs and other links:
- [GitHub Pull Request apache/arrow#4199](https://github.com/apache/arrow/pull/4199)
**Note**: *This issue was originally created as [ARROW-5197](https://issues.apache.org/jira/browse/ARROW-5197). Please see the [migration documentation](https://github.com/apache/arrow/issues/14542) for further details.*
Guide de contribution
Ouvrir le guide de contribution
Piste de recherche
Commencez par examiner les interfaces d’accès de Java Arrow Vector et ArrowBuf, puis inspectez le travail terminé sur ArrowBuf et la PR apache/arrow#4199. L’issue est terminée lorsque les méthodes d’accès unsafe prennent en charge les lectures directes sans vérifications de nullité ni de limites, et que le travail associé sur les vecteurs ainsi que le comportement des performances sont traités.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- java
- Domaine
- data-engineering
- Type d'issue
- Fonctionnalité
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 20/100