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

Hyukjin Kwon reassigned SPARK-60549:
------------------------------------

    Assignee: DB Tsai

> Share immutable logical plans and expressions in Spark Connect Rust
> -------------------------------------------------------------------
>
>                 Key: SPARK-60549
>                 URL: https://issues.apache.org/jira/browse/SPARK-60549
>             Project: Spark
>          Issue Type: Improvement
>          Components: Connect
>    Affects Versions: connect-rust-4.3.0
>            Reporter: DB Tsai
>            Assignee: DB Tsai
>            Priority: Major
>              Labels: pull-request-available
>             Fix For: connect-rust-4.3.0
>
>
> Spark Connect Rust recursively clones existing logical-plan and expression 
> subtrees when DataFrames and Columns are extended or reused. Share immutable 
> logical-plan nodes through Arc<LogicalPlan> and represent expressions as 
> shared Arc<ExpressionNode> handles to avoid repeatedly copying ancestors and 
> payloads during client-side construction.
> Preserve structural equality (including NaN behavior), rendering, protobuf 
> output, argument order, and execution-time plan-ID assignment. Include 
> sharing, immutability, payload-lifetime, and serialization regressions, plus 
> a reproducible native-PySpark benchmark separating construction, action, and 
> total time.
> Compatibility: public Rust logical-plan child fields change from Box to Arc; 
> direct expression construction and pattern matching move to ExpressionNode. 
> Ordinary Column, DataFrame, and Python APIs and the Spark Connect wire 
> protocol remain unchanged. Shared occurrences still serialize to independent 
> protobuf trees.
> Local measurements show faster client construction, but do not establish 
> consistent end-to-end speedups or memory savings. Zero-copy protobuf/Arrow 
> serialization and server execution deduplication are not part of this change.
> Draft implementation: https://github.com/apache/spark-connect-rust/pull/102
> The PR records completed regression/live tests, benchmark methodology, and 
> outstanding full parity/API-introspection checks and pre-existing Clippy 
> failures.



--
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