apache / apache/uniffle

[Improvement][Remote Merge] Optimize the server-side deserialization for spark.

Open
#2,394 0 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.

### What would you like to be improved?

Because of the RawComparator, data generated for mr And tez tasks can be sorted on the server side without deserialization.
For spark, the data is fully deserialized on the server before sorting. The current implementation deserializes both key and value. In fact, we can only deserializes the key when sorting. By this way, computing resources will be saved.

### How should we improve?

_No response_

### Are you willing to submit PR?

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

Contributor guide

Open the contributing guide

Research direction

No files or tests are named. Start by locating the server-side Spark deserialization and sorting path, then compare it with the RawComparator path used for MapReduce and Tez. Done means Spark sorting preserves its behavior while avoiding deserialization of values and reducing the relevant server-side computation.

Written by the indexing model from the issue text.

Assessment

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.