[Java] reduce heap footprint of ValueVectors
- Vorherrschende Sprache
- Java
- Sterne
- 94
- Forks
- 152
- Ø Merge
- 3 T. 16 Std.
- Gemergte PRs (30 T.)
- 11
Beschreibung
In some scenarios, we hold lots of value vectors in memory eg. during join, aggregation. The heap analysis shows that the costs are as follows for a simple IntVector (used VisualVM on mac) :
IntVector : 80 bytes
vector.types.pojo.FieldType : 41 bytes
vector.types.pojo.Field : 40 bytes
IntReaderImpl : 28 bytes
I'll use this Jira to track ways to reduce the heap usage.
**Reporter**: [Pindikura Ravindra](https://issues.apache.org/jira/browse/ARROW-5482) / @pravindra
#### Related issues:
- [[Java] remove FieldReader from ValueVector](https://github.com/apache/arrow-java/issues/411) (is a parent of)
- [[Java] add ValueVector constructors that take a Field object](https://github.com/apache/arrow/issues/21932) (is a parent of)
**Note**: *This issue was originally created as [ARROW-5482](https://issues.apache.org/jira/browse/ARROW-5482). Please see the [migration documentation](https://github.com/apache/arrow/issues/14542) for further details.*
Beitragsleitfaden
Rechercherichtung
Beginnen Sie mit dem Lesen der Java ValueVector-Implementierungen und des zugehörigen Issues „remove FieldReader from ValueVector“ (#411), und reproduzieren Sie anschließend das aufgeführte IntVector-Heap-Profil mit VisualVM. Als erledigt gilt die Aufgabe, wenn eine gemessene Reduzierung der gemeldeten ValueVector-Speicherkosten vorliegt und die betroffenen Szenarien sowie die Abwägungen dokumentiert sind.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- java
- Bereich
- performance
- Issue-Typ
- Refactoring
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Aktivitätsstatus
- Veraltet
- Klarheit
- Muss geklärt werden
- Anfängerfreundlichkeit
- 25/100