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

ASF GitHub Bot updated SPARK-60606:
-----------------------------------
    Labels: pull-request-available  (was: )

> Reduce local input allocations and Int64 decoding overhead in Spark Connect 
> Rust
> --------------------------------------------------------------------------------
>
>                 Key: SPARK-60606
>                 URL: https://issues.apache.org/jira/browse/SPARK-60606
>             Project: Spark
>          Issue Type: Improvement
>          Components: Connect
>    Affects Versions: connect-rust-4.3.0
>            Reporter: DB Tsai
>            Priority: Major
>              Labels: pull-request-available
>             Fix For: connect-rust-4.3.0
>
>
> Local input conversion builds a second complete row matrix, then clones each 
> column before Arrow conversion. Coerce one column at a time to remove those 
> intermediate copies while retaining the existing coercion rules. For 
> homogeneous Int64 result batches, downcast each column once and preserve the 
> generic decoder for all other batches.
> Each optimization was measured independently against `74b8e41`; that baseline 
> has exactly the same source tree as current master `c36c846`. Each screen and 
> fresh confirmation used 15 fresh processes per build/case in rotating order. 
> These are observed median changes; the combined PR head has not been 
> benchmarked.
> Selected independent confirmation observations: wide tuple input CPU −13.56%, 
> wall −13.49%, held RSS −28.95 MiB; string input CPU/wall −8.24%, held RSS 
> −3.44 MiB; Int64 collect CPU −57.34%, wall −67.50%, held RSS +0.125 MiB; 
> Int64 collect plus full value scan CPU −7.09%, wall −7.27%, held RSS +0.2344 
> MiB.
> Overall CPU and memory acceptance rejected: the retained 
> Duration(Microsecond) case fails before timing in both Rust builds, and 
> several timing regression intervals remain uncertain. Wide-input target-only 
> repeated memory support does not establish overall acceptance. The combined 
> head has no benchmark timing; live Spark parity and CI remain outstanding.
> Fresh combined correctness/API/Python validation is recorded in the draft PR. 
> Completion requires a fresh frozen combined-head screen and independent 
> confirmation with every raw Rust sample and CPU/wall/RSS guard passing, plus 
> live-server parity. Keep the existing Duration failure explicit; exact 
> timedelta conversion is separate correctness work.
> Harness: 
> https://github.com/dbtsai/pyspark-connect-benchmark/tree/23bdf9046815ae615c921b2e6bab827eed00aaae
> Generated with OpenAI Codex.
> Draft PR: https://github.com/apache/spark-connect-rust/pull/109



--
This message was sent by Atlassian Jira
(v10.3.26#10030026)

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

Reply via email to