apache / apache/parquet-java

Provide a ByteBuffer based write path

Offen
#1,535 2 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Component: Java Component: Parquet Priority: Major Type: enhancement
Vorherrschende Sprache
Java
Sterne
3.1k
Forks
1.6k
Ø Merge
3 T. 12 Std.
Gemergte PRs (30 T.)
33

Beschreibung

Similar to the effort to use a ByteBuffer in the read path, we should provide a path to use a ByteBuffer in the write path.

The proposed idea is to provide an allocator in the writer that is passed down to CapacityByteArrayOutputStream and is used to allocate a ByteBuffer instead of the byte array that it currently uses.

I've attached a patch based on the 1.5 release that does that. There are two implementations of the allocator - one for Heap memory and one for Direct memory. In addition, the allocator interface allows for a 'release' method so that reference counted memory allocators like Netty's ByteBuf can be used to provide an allocator.

**Reporter**: [Parth Chandra](https://issues.apache.org/jira/secure/ViewProfile.jspa?name=parthc) / @parthchandra
#### Related issues:
- [Move off of Parquet fork](https://issues.apache.org/jira/browse/DRILL-1410) (is depended upon by)

**Note**: *This issue was originally created as [PARQUET-78](https://issues.apache.org/jira/browse/PARQUET-78). Please see the [migration documentation](https://issues.apache.org/jira/browse/PARQUET-2502) for further details.*

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Rechercherichtung

Beginnen Sie damit, den bestehenden auf ByteBuffer basierenden Lesepfad mit dem Writer und dem in diesem Issue genannten CapacityByteArrayOutputStream zu vergleichen. Verfolgen Sie, wie der vorgeschlagene allocator Heap- oder Direct-Buffer bereitstellen würde und wie deren Freigabe behandelt würde, und überprüfen Sie anschließend, ob der Schreibpfad beide allocator-Implementierungen und referenzgezählten Speicher unterstützt.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
java
Bereich
data-engineering
Issue-Typ
Feature
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
45/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.