Improve performance of InternalParquetRecordReader (1%)
Maintainer antworten meist innerhalb von 3 Tagen
Dieses Issue hat noch niemand übernommen.
- #3227 von @jerolba — ohne Merge geschlossen
Bewertung
- Schwierigkeit
- 2/5
- Geschätzter Aufwand
- 1-3 Stunden
- Anfängerfreundlichkeit
- 55/100
- Issue-Typ
- Feature
- Klarheit
- Klar beschrieben
- Aktivitätsstatus
- Veraltet
- Tech-Stack
- java
- Bereich
- data-engineering, performance
Rechercherichtung
Beginne in parquet-hadoop/src/main/java/org/apache/parquet/hadoop/InternalParquetRecordReader.java beim LongStream um Zeile 323 und überprüfe anschließend das verlinkte Benchmark-Projekt parquet-rowindexiterator. Vergleiche die aktuelle Iteration des Readers mit dem Long Iterator-Ansatz des Benchmarks; abgeschlossen ist die Aufgabe, wenn der Reader den gemeldeten LongStream-Overhead vermeidet und dabei das Verhalten bei der Row-Index-Iteration beibehält.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Describe the enhancement requested
Profiling the load of a Parquet file with Java Mission Control, I've noticed that InternalParquetRecordReader LongStream consumes relevant amount of time.
This LongStream can be replaced with a simpler Long Iterator that iterates from 0 to pages.getRowCount().
To measure the overhead I've created a test project that overwrites InternalParquetRecordReader implementation with a Long Iterator: https://github.com/jerolba/parquet-rowindexiterator
The execution time is sensitive to the context of the JVM, but running the benchmark multiple times shows that LongStream is slower than LongIterator, between 1% and 4% depending on the run.
Component(s)
No response
- Vorherrschende Sprache
- Java
- Sterne
- 3.1k
- Forks
- 1.6k
- Ø Merge
- 4 T. 14 Std.
- Gemergte PRs (30 T.)
- 31
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Hat eine Pull-Request-Vorlage
- Kein Beitragsleitfaden
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus apache/parquet-java
-
Binary statistics truncation test ignores its configured truncation lengthEvtl. vergeben @dhruv-15-03 hat das vor 24 Tagen übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 88/100
apache/parquet-java#3820 ·
Maintainer antworten meist innerhalb von 3 Tagen
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100
apache/parquet-java#3767 ·
Maintainer antworten meist innerhalb von 3 Tagen
-
Remove duplicate LICENSE and NOTICE files from benchmark JARsEvtl. vergeben @efegokdemir hat das vor 27 Tagen übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
apache/parquet-java#3695 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 3 Tagen
-
null_count is omitted for large columns in parquet filesEvtl. vergeben @efegokdemir hat das vor 25 Tagen übernommen. OffenType: bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
apache/parquet-java#3574 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 3 Tagen
-
Improve `RunLengthBitPackingHybridDecoder.readNext` to avoid per-call buffer allocation and `DataInputStream` wrappingEvtl. vergeben @arouel hat das vor 197 Tagen übernommen. OffenType: enhancement
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 74/100
apache/parquet-java#3466 ·
Maintainer antworten meist innerhalb von 3 Tagen
Alle Issues in apache/parquet-java
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
QuicksilverMC/Argentum#31 ·
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
navikt/mock-oauth2-server#1129 ·
Maintainer antworten meist innerhalb von 1 Tag
-
bug main ui
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 65/100
openhab/openhab-webui#4600 ·
Maintainer antworten meist innerhalb von 4 Tagen
-
26.4 area: tags enhancement
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
Maintainer antworten meist innerhalb von 1 Tag
-
`DeepSeekChatModel` streaming returns no content when chunks have no `id`Evtl. vergeben @lejuho hat das heute übernommen. Offenstatus: waiting-for-triage
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
spring-projects/spring-ai#7214 ·
Maintainer antworten meist innerhalb von 2 Tagen