feat: complete Celeborn map-side shuffle push lifecycle (6/n) - #5513
feat: complete Celeborn map-side shuffle push lifecycle (6/n)#5513pingzh wants to merge 1 commit into
Conversation
ziting-openai
left a comment
There was a problem hiding this comment.
Native-first Celeborn initialization bypasses configured Spark shuffle encryption, and fixed maximum-frame admission serializes encoding under the default executor limits.
16d7167 to
520ca35
Compare
520ca35 to
be5f4af
Compare
be5f4af to
93b8336
Compare
sunchao
left a comment
There was a problem hiding this comment.
Follow-up review at 93b8336ed2f61dfc82d177b6e1bb994eb7e341aa against base eabb5d4773091b983d8fce713f0e34b1cf93f877: verified the fixes for both prior admission P2s and rechecked the earlier fixes. No remaining P1/P2 found.
Validation: native core; 102 Rust tests; 128 JVM tests each on Spark 3.4, 3.5, and 4.0, and 76 each on 4.1 and 4.2; 96 allocation, 74 actual-JNI, and 48 stock Celeborn controls with old/base causal comparisons.
Tests used local/controlled transport, not a deployed Celeborn cluster. Encrypted native RSS is explicitly rejected; ordinary Spark crypto handling is retained. CI is still running.
Which issue does this PR close?
Part of #5352. This is the sixth foundational PR and does not close the issue.
Previous PRs:
Rationale for this change
The existing Celeborn integration provides the shuffle manager and partition-pusher foundation but does not yet complete the native map-side shuffle lifecycle.
Production use requires bounded frames, executor-wide backpressure, asynchronous completion tracking, cancellation handling, speculative-attempt coordination, retry-safe commits, and support for nested Arrow data.
What changes are included in this PR?
spark.comet.shuffle.rss.maxFrameBytesspark.comet.shuffle.rss.maxInFlightBytesHow are these changes tested?
CelebornShufflePartitionPusherSuiteCometCelebornShuffleManagerSuiteCometCelebornNativeShuffleWriterSuiteCometConfSuiteCometNativeShuffleSuite