[ 
https://issues.apache.org/jira/browse/SPARK-56895?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Ismaël Mejía updated SPARK-56895:
---------------------------------
    Description: 
Replaces per-group {{in.slice(bitWidth)}} (one {{ByteBuffer}} allocation per 8 
values) with a single bulk slice for the entire RLE PACKED run in the Parquet 
vectorized reader.

h3. Changes

* *Batch ByteBuffer slice*: Instead of allocating a new {{ByteBuffer}} for each 
8-value group in a PACKED run, allocate a single slice covering all groups and 
advance a position cursor.
* Eliminates ~128K short-lived ByteBuffer allocations per 1M-value page.

h3. Benchmark Results (GHA, AMD EPYC 7763)

||bitWidth||Speedup (readIntegers)||Speedup (skipIntegers)||
|4|2.0x|2.1x|
|8|2.0x|2.4x|
|12|1.6x|1.6x|
|20|1.4x|1.4x|

PR: https://github.com/apache/spark/pull/55922
Parent issue: https://github.com/apache/spark/issues/56011

> Batch ByteBuffer slice in RLE PACKED decode to reduce allocation overhead
> -------------------------------------------------------------------------
>
>                 Key: SPARK-56895
>                 URL: https://issues.apache.org/jira/browse/SPARK-56895
>             Project: Spark
>          Issue Type: Sub-task
>          Components: SQL
>    Affects Versions: 5.0.0
>            Reporter: Ismaël Mejía
>            Assignee: Ismaël Mejía
>            Priority: Major
>              Labels: pull-request-available
>             Fix For: 4.3.0
>
>
> Replaces per-group {{in.slice(bitWidth)}} (one {{ByteBuffer}} allocation per 
> 8 values) with a single bulk slice for the entire RLE PACKED run in the 
> Parquet vectorized reader.
> h3. Changes
> * *Batch ByteBuffer slice*: Instead of allocating a new {{ByteBuffer}} for 
> each 8-value group in a PACKED run, allocate a single slice covering all 
> groups and advance a position cursor.
> * Eliminates ~128K short-lived ByteBuffer allocations per 1M-value page.
> h3. Benchmark Results (GHA, AMD EPYC 7763)
> ||bitWidth||Speedup (readIntegers)||Speedup (skipIntegers)||
> |4|2.0x|2.1x|
> |8|2.0x|2.4x|
> |12|1.6x|1.6x|
> |20|1.4x|1.4x|
> PR: https://github.com/apache/spark/pull/55922
> Parent issue: https://github.com/apache/spark/issues/56011



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to