Skip to content

[SPARK-58281][ML][CONNECT] Avoid parent overcounting in PipelineModel size estimates#57451

Open
zhengruifeng wants to merge 4 commits into
apache:masterfrom
zhengruifeng:pipeline-model-size-estimate-dev3
Open

[SPARK-58281][ML][CONNECT] Avoid parent overcounting in PipelineModel size estimates#57451
zhengruifeng wants to merge 4 commits into
apache:masterfrom
zhengruifeng:pipeline-model-size-estimate-dev3

Conversation

@zhengruifeng

Copy link
Copy Markdown
Contributor

What changes were proposed in this pull request?

Adds a PipelineModel.estimatedSize override that sums model-stage estimates individually and directly estimates non-model transformer stages. This prevents a reflection walk of the complete pipeline object graph.

Adds a regression test that fits a pipeline containing StringIndexer and asserts its size estimate remains below 16 KiB.

Why are the changes needed?

SPARK-57521 clears the top-level model parent before the default size walk. A copied PipelineModel still contains copied model stages whose estimator parents are retained, so a reflection walk can still reach shared Spark-session state. Estimating nested model stages independently applies their parentless-copy behavior at every model boundary.

Does this PR introduce any user-facing change?

Yes. Pipeline model cache-size estimates no longer include shared state reachable through nested stage parents, preventing unnecessary cache overcounting.

How was this patch tested?

  • Added a fitted StringIndexer pipeline size-estimation regression test.
  • JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64 build/sbt 'mllib/Test/compile'\n\n### Was this patch authored or co-authored using generative AI tooling?\n\nGenerated-by: Codex GPT-5

@zhengruifeng zhengruifeng changed the title [WIP][ML] Avoid parent overcounting in PipelineModel size estimates [SPARK-58281][ML][CONNECT] Avoid parent overcounting in PipelineModel size estimates Jul 23, 2026
@zhengruifeng
zhengruifeng marked this pull request as ready for review July 23, 2026 02:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant