apache / apache/uniffle

[FEATURE] Support stage recompute for Spark clients

Open
#477 6 comments 0 reactions 0 assignees View on GitHub
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?q=is%3Aissue) and found no similar issues.

### Describe the feature

Once `Uniffle`'s shuffle data read fails, the spark client has its chance to recompute the whole stage.

### Motivation

In a distributed cluster with large number of shuffler servers, it's common for some node to go down, such as:
1. node crash/maintenance due to hardware failures or security patches
2. Pod eviction if deployed in a k8s environment
3. vm/spot instance eviction if deployed in a cloud environment

Uniffle already has provide a mechanism to overcome this issue: the quorum protocol. But it requires multiple replica of the same shuffle data, which increases the network traffic and memory pressure on shuffle server. And the E2E performance may be degraded due to the replication.

I'd like to provide a new way to alleviate the potential node failure(in rare chance). Once the whole stage could be recompute, the Spark App could be resilient to shuffle server node failure.

### Describe the solution

TBD.

A design doc would be added later

### Additional context

_No response_

### Are you willing to submit PR?

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

Contributor guide

Open the contributing guide

Research direction

The issue names no files, tests, or entry points and leaves the solution as TBD. Start by reviewing the Spark client’s stage recomputation behavior and the existing quorum mechanism, then produce the promised design doc that defines the approach and acceptance criteria.

Written by the indexing model from the issue text.

Assessment

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.