Skip to content

Remove the legacy ShuffleWriter.output_data_file field from the native shuffle plan #5927

Description

@peterxcli

What is the problem the feature request solves?

ShuffleWriter in operator.proto still has a top-level output_data_file, kept for native binaries that predate partition_writer. Nothing Comet ships needs it.

CometNativeShuffleWriter.buildUnifiedPlan always sets partition_writer, and for local output also copies the same path into the top-level field. In shuffle_writer_destination the branch that falls back to the top-level path when partition_writer is absent is unreachable from any Comet JVM, and otherwise the field only feeds a check that it matches partition_writer.local.output_data_file.

The jar and native library must come from the same release (docs/source/about/versioning_policy.md). After #5807 an older native library cannot serve a newer JVM anyway, since it has no getShufflePartitionOffsets.

Describe the potential solution

Reserve the tag and name of ShuffleWriter.output_data_file, stop setting it in CometNativeShuffleWriter, make shuffle_writer_destination require partition_writer, and drop the legacy-plan cases from the proto and planner tests.

Additional context

Raised in review of #5807.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

area:shuffleShuffle (JVM and native)enhancementNew feature or request

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions