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

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions