-
Notifications
You must be signed in to change notification settings - Fork 593
HDDS-5851. [Ozone-Streaming] Define a PutBlock/maxBuffer fixed boundary for streaming writes. #2866
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
Conversation
hadoop-hdds/client/src/main/java/org/apache/hadoop/hdds/scm/OzoneClientConfig.java
Outdated
Show resolved
Hide resolved
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.
Did we need add updateFlushLength(), waitOnFlushFutures() and watchForCommit(false) here? Just as what we did in handleFlush. Currently we only releaseBuffers after watchForCommit.
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.
Thanks @captainzmc for the comment. The plan here is to execute a putBlock at 32MB and not block the client right away by waiting for the flush futures and calling watchForCommit. We will introduce another boundary say at 64MB to check whether atleast 32MB is flushed and committed to all datanodes i.e watchForCommit() and waitForFlushFutures() will occur at 64mb. (I will add this is in a different patch after this PR)
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.
Thanks for explaining, make sense.
…ites. (cherry picked from commit 4406ecf99c38b14c6a0260a933df2fde954e5b99)
(cherry picked from commit 1fcac2916ce5c1b1060edcef3714c8ec43bc6605)
(cherry picked from commit f0858e58cb214c1f5792ff54f1d26b72066359d1)
f0858e5 to
b7164cd
Compare
hadoop-hdds/client/src/main/java/org/apache/hadoop/hdds/scm/OzoneClientConfig.java
Show resolved
Hide resolved
captainzmc
left a comment
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.
+1 The change looks good.
|
Thanks @sadanand48 for the contribution. |
…ry for streaming writes. (#2866)
…ry for streaming writes. (#2866)
…ry for streaming writes. (#2866)
…ry for streaming writes. (#2866)
…ry for streaming writes. (#2866)
…ry for streaming writes. (#2866)
…ry for streaming writes. (#2866)
…ry for streaming writes. (apache#2866)
…ry for streaming writes. (#2866)
…ry for streaming writes. (#2866)
…ry for streaming writes. (#2866)
…ry for streaming writes. (apache#2866)
…ry for streaming writes. (apache#2866) (cherry picked from commit 9d5ccb3)
What changes were proposed in this pull request?
Currently, putBlock call gets executed only during close() when a block is written. The aim here is to have a putBlock boundary similar to async path where the putBlock gets executed which updates the key length and help reduce some memory on client. The default boundary here is set at 32 MB where a putBlock is executed. Also a limit is set on the ByteBuffer size the client can send here (4mb).
What is the link to the Apache JIRA
https://issues.apache.org/jira/browse/HDDS-5851
How was this patch tested?
Unit test