Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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-10377. Allow datanodes to do chunk level modifications to closed containers. #7111
HDDS-10377. Allow datanodes to do chunk level modifications to closed containers. #7111
Changes from 3 commits
3096a20
e9e85ee
d836bd2
0f9537f
daaa584
dec8a91
79eed7f
9a051d8
File filter
Filter by extension
Conversations
Jump to
There are no files selected for viewing
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.
Write new metrics, this should be a separate processing that we need to track from the normal write chunk path.
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.
Might be cleaner to use or introduce something similar to org.apache.hadoop.ozone.util.MetricUtil#captureLatencyNs(org.apache.hadoop.metrics2.lib.MutableRate, org.apache.ratis.util.function.CheckedSupplier<T,E>) to capture latency.
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.
We can do it, but I'm reusing the same previous implementation to avoid code duplication.
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.
I think this list is implicitly sorted by offset at the time of writing. It's possible the chunk we are patching is in the middle, so will need to re-sort this. This should also show up when tests are added to read data that has been patched with this method.
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.
Can this method just return a
bool
? Throwing an exception to check the state of a container seems heavy handed. It makes sense forwriteChunkForClosedContainer
to throw an exception as the contract for that method is that it should be called only for closed containers. This method is just check on the state.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.
This method is used in both
putBlockForClosedContainer
andwriteChunkForClosedContainer
, We shouldn't allow putBlock as well for non-closed container, hence the exception. We can change it to boolean and still fail the request, but it would be the same in the end.