You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In BlockDataStreamOutput, we should write directly to the underlying stream. We should not use BufferPool and ChunkBuffer in BlockDataStreamOutput anymore since we want to avoid buffer copying.
Hi @szetszwo@bshashikant@mukul1987
I've removed the BufferPool and ChunkBuffer from BlockDataStreamOutput in this PR.
Also, since BufferPool is removed, Retry and Flush policy will be different, and I think we can discuss their implementations in this PR.
The reason will be displayed to describe this comment to others. Learn more.
Let's copy CommitWatcher to a new class, say StreamCommitWatcher? In StreamCommitWatcher, we don't need bufferPool. The commitIndex2flushedDataMap should be different -- it should not use ChunkBuffer anymore.
@bshashikant , @kaijchen , @captainzmc , I suggest that we first make the streaming write working (without retry, checksum, error handling, etc) so that we have something to test. Then, we can add those features. What do you think?
Agree with @szetszwo.
At present the writing flow of Ozone streaming has working. And our client also had avoided buffer copy.(Although we are currently using star Topology).
I think we can do a simple performance test now. Currently our implementation is very simple, which makes it easier to locate performance issues. We need to address performance issues first. @bshashikant
In addition, I will test the performance of streaming with checksum enabled and without checksum enabled. To verify checksum's impact on performance. (The default value of io.bytes.per.checksum in HDFS is 512 bytes)Perhaps checksum's performance overhead isn't that high. Let's make sure by testing it first.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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.
What changes were proposed in this pull request?
In BlockDataStreamOutput, we should write directly to the underlying stream. We should not use BufferPool and ChunkBuffer in BlockDataStreamOutput anymore since we want to avoid buffer copying.
What is the link to the Apache JIRA
https://issues.apache.org/jira/browse/HDDS-5599
How was this patch tested?
Existing UT