apache / apache/uniffle

[FEATURE] Make metadata of end-to-end integrity validation stored in the shuffle-server side

Open
#2,673 1 comment 0 reactions 0 assignees View on GitHub
good first issue
Dominant language
Java
Stars
454
Forks
172
Avg merge
5d 17h
Merged PRs (30d)
5

Description

By leveraging the PR #2653 , we could end-to-end ensure the data consistency. But, the partition stats stored in the spark driver side, for the normal spark stages, this design runs well. But with the 100000 tasks with 10000 partitions, this will make the Spark driver overload. From the point of cluster spark jobs, some huge jobs will hang when getting the blockManagerIds, that will cost almost 20mins for one reader task, that is unacceptable.

And so we should introduce the extra mechanism to store the metadata in the shuffle-server side.

Contributor guide

Open the contributing guide

Research direction

Start by reviewing PR #2653 and the linked merged PR #2669, then trace how partition stats are currently stored on the Spark driver and used to obtain blockManagerIds. The issue's intended result is to move the end-to-end integrity metadata to the shuffle-server side so large jobs do not overload the driver or leave reader tasks waiting for about 20 minutes.

Written by the indexing model from the issue text.

Assessment

Tech stack
java, 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.