-
Notifications
You must be signed in to change notification settings - Fork 9.1k
HDFS-17054. Erasure coding: optimize checkReplicaOnStorage method to avoid regarding all replicas on one datanode as corrupt repeatly. #5760
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: trunk
Are you sure you want to change the base?
Conversation
…avoid regarding all replicas on one datanode as corrupt repeatly.
2b8c2d1
to
1b68e2b
Compare
💔 -1 overall
This message was automatically generated. |
💔 -1 overall
This message was automatically generated. |
The failed unit tests were all passed in my local. |
if (nodesCorrupt != null && nodesCorrupt.contains(node) && | ||
(haveComputedAsCorrupted == null || !haveComputedAsCorrupted.contains(node))) { | ||
if (haveComputedAsCorrupted != null) { | ||
haveComputedAsCorrupted.add(node); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If I understand your code correctly, if the same block group has two internal blocks on the same datanode, then you will only calculate one. IMO, the current implementation of CorruptReplicasMap
does not record which specific internal block on the datanode was corrupt, how could you confirm that there is only one internal block corrupt?
This PR may need to add a new UT. |
Description of PR
Please see HDFS-17054
How to test
TestBlockManager.java
TestDecommissionWithStriped.java
TestNodeCount.java
TestReconstructStripedBlocks.java
TestRedudantBlocks.java
TestOverReplicatedBlocks.java
TestProcessCorruptBlocks.java