apache / apache/uniffle

[Subtask][Improvement][AQE][LocalOder] Introduce the new MergedShuffleDataSegment to reduce number of rpc

Open
#302 2 comments 0 reactions 0 assignees View on GitHub
help wanted
Dominant language
Java
Stars
454
Forks
172
Avg merge
5d 17h
Merged PRs (30d)
5

Description

### Code of Conduct

- [X] I agree to follow this project's [Code of Conduct](https://www.apache.org/foundation/policies/conduct)

### Search before asking

- [X] I have searched in the [issues](https://github.com/apache/incubator-uniffle/issues) and found no similar issues.

### Describe the subtask

Currently, when using the `LocalOrderSegmentSplitter`, it will split multiple `ShuffleDataSegment` by three factors.

1. taskId in [startMapId, endMapId) taskIds bitmap
2. ShuffleDataSegment size should < readBufferSize
3. ShuffleDataSegment's blocks should be continuous

In some cases, these requirements will make the data size very small (<14M). So we could combine some ShuffleDataSegment to single one data-fetching request to reduce the RPC interaction number.

### Parent issue

#137

### Are you willing to submit PR?

- [ ] Yes I am willing to submit a PR!

Contributor guide

Open the contributing guide

Research direction

Start with the LocalOrderSegmentSplitter and the ShuffleDataSegment constraints described in the issue, then review parent issue #137 for surrounding context. The work is done when multiple small segments can be combined into a single data-fetching request while preserving the task-range, size, and block-continuity requirements and reducing RPC interactions.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
backend, distributed-systems, performance
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.