[Improvement][Remote Merge] Optimize the server-side deserialization for spark.
- 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
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