-
Notifications
You must be signed in to change notification settings - Fork 501
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
HDDS-11475: Verify EC reconstruction correctness #7401
base: master
Are you sure you want to change the base?
Conversation
Thanks @devabhishekpal for working on this. Please wait for clean CI run in fork before opening PR (or marking as "ready for review").
Since this is controlled by a new config, which defaults to the old behavior, I don't think it is validated by any unit tests. |
The approach used here, is to take the chunk buffer, which holds the real data just written to the block, and calculate the checksum on it. However that is duplicating work, as the act of writing the data through the ECBlockOutput stream already performs that checksum and persists it in the block metadata as part of the put block. I have had to look at this for some time to try to understand the current flow. Its been a long time since this EC code was written, and the checksum stuff was not written by me. @aswinshakil might be a good person for a second look. Starting in the ECReconstructionCoordinator, there is code where it calls
Inside I think that approach will work, and it avoids calculating the checksum from the data a second time. |
What changes were proposed in this pull request?
HDDS-11475: Verify EC reconstruction correctness
Please describe your PR in detail:
private StripeWriteStatus commitStripeWrite(ECChunkBuffers stripe)
What is the link to the Apache JIRA
https://issues.apache.org/jira/browse/HDDS-11475
How was this patch tested?
Unit tests