[Improvement] `rss.client.assignment.shuffle.nodes.max` should not be less than `rss.data.replica`
- 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?
For current assignment strategy, if `rss.client.assignment.shuffle.nodes.max` less than `rss.data.replica`, the duplicate shuffle server will be included in the replicas.
### How should we improve?
Check if `rss.client.assignment.shuffle.nodes.max` less than `rss.data.replica` in the client side.
We can modify the following method.
https://github.com/apache/incubator-uniffle/blob/10e8e3d2eb553146d9729e5dac2bde20f71c3358/common/src/main/java/org/apache/uniffle/common/util/RssUtils.java#L310C22-L319
### Are you willing to submit PR?
- [ ] Yes I am willing to submit a PR!
Contributor guide
Research direction
Start in common/src/main/java/org/apache/uniffle/common/util/RssUtils.java at the referenced method and trace how the client reads rss.client.assignment.shuffle.nodes.max and rss.data.replica. Done means the client checks their relationship before assignment, preventing duplicate shuffle servers when the maximum node count is smaller than the replica count.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- backend, distributed-systems
- Issue type
- Bug
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Stale
- Clarity
- Clearly specified
- Newbie friendliness
- 45/100