apache / apache/gluten

[VL] Make ColumnarShuffleExchangeExec extensible for different serializers

Open
#10,107 5 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Scala
Stars
1.6k
Forks
657
Avg merge
2d 14h
Merged PRs (30d)
80

Description

An API `#isUseCelebornShuffleManager` in the common module is heavily relied in our code:

https://github.com/apache/incubator-gluten/blob/4017788a1e5d782d844260528bb2a49ccff02e44/gluten-substrait/src/main/scala/org/apache/gluten/config/GlutenConfig.scala#L132-L136

The API is related tp Celeborn RSS, which is plugged in Gluten's framework as an optional dependency.

Having this kind of API in common module weakens the extensibility and portability of the core code.

To enhance, we could make ColumnarShuffleExchangeExec extensible so serializer instances can be inlined into the plan node. So we don't have to call `#isUseCelebornShuffleManager` to find a proper serializer anymore.

Contributor guide

Open the contributing guide

Research direction

Start by reading GlutenConfig.scala, especially the isUseCelebornShuffleManager API, and then trace ColumnarShuffleExchangeExec in the common module. Determine how serializer instances could be carried by the plan node and define completion as removing the need to select a serializer through that API, while preserving optional Celeborn integration.

Written by the indexing model from the issue text.

Assessment

Tech stack
scala, spark
Domain
backend, distributed-systems
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.