[#825][part-1] feat(spark): Add the RPC interface for reassigning ShuffleServer - #1137
Conversation
Codecov Report
@@ Coverage Diff @@
## master #1137 +/- ##
============================================
+ Coverage 53.76% 54.88% +1.11%
- Complexity 2604 2613 +9
============================================
Files 392 373 -19
Lines 22507 20174 -2333
Branches 1889 1893 +4
============================================
- Hits 12102 11072 -1030
+ Misses 9695 8461 -1234
+ Partials 710 641 -69
... and 22 files with indirect coverage changes 📣 We’re building smart automated test selection to slash your CI/CD build times. Learn more |
|
@jerqi @advancedxy I have run mvn spotless:apply locally, why is there still a format error. |
You don't enable profile hadoop2.8. |
7c319de to
0949fa9
Compare
|
I will take a look at this today or tomorrow. The follow chart looks awesome on the surface. Also cc @zuston if you have interest to review this. |
I did a quick overview of this diagram, seems like that it only handles shuffle write failures, how about the shuffle read failure? In which case, some of the shuffle servers are done or unable to serving shuffle data, the shuffle read client would report And by the way, I don't think it's a good idea to throw an |
advancedxy
left a comment
There was a problem hiding this comment.
I believe some refactor is needed to reduce code duplication.
For writing phase, I think the mechanism of task retry is enough. If the server is bad or out-of-service, the dynamic assignment is necessary when the spark task is retrying. |
e3673e6 to
b157903
Compare
|
@advancedxy @yl09099 @zuston Let us discuss this feature in the meeting next week. |
advancedxy
left a comment
There was a problem hiding this comment.
This is in good shape. Just some minor comments.
@zuston Please take another look, when you have time.
Also kindly remind of these two high level questions. |
1、Read failure Someone has submitted the relevant PR earlier#787,There is a situation that is indeed not implemented, and there is no way to notify the upstream rewrite when the read fails, which would like to be implemented later. |
Sorry for the late reply, I have to say sorry again that don't have much time to review for this feature. |
Please look at it for me when you have time.Please trigger the compilation for me again, I didn't change anything in Tez. |
zuston
left a comment
There was a problem hiding this comment.
LGTM. Let's merge this firstly
|
Oh, please take a look for these requested changes. The resolve operation by me is not valid for this merging. @advancedxy . And I think we could push forward quickly for this feature, If I understand correctly, this has been applied in DIDI . cc @yl09099 |
advancedxy
left a comment
There was a problem hiding this comment.
LGTM. Let's merge this first
OK,I'll merge as soon as possible. |

What changes were proposed in this pull request?
We need to provide an RPC interface for reassigning ShuffleServer, with support for excluding some ShuffleServer lists.
Ⅰ. Overall objective:
Ⅱ. Implementation logic diagram:
Ⅲ. As shown in the picture above:
2, the Task of Stage starts, solid steps, in accordance with the green by ShuffleManager Client RPC interface gets to be written for shuffleIdToShuffleHandleInfo ShuffleServer list;
Why are the changes needed?
Such an interface is required when dynamically allocating a shuffleServer list.
Fix: #825
Does this PR introduce any user-facing change?
No.
How was this patch tested?
Add UT.