-
Notifications
You must be signed in to change notification settings - Fork 9k
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
HADOOP-18106: Handle memory fragmentation in S3A Vectored IO. #4445
HADOOP-18106: Handle memory fragmentation in S3A Vectored IO. #4445
Conversation
…tation. part of HADOOP-18103. Handling memoroy fragmentation in S3A vectored IO implementation by allocating smaller user range requested size buffers and directly filling them from the remote S3 stream and skipping undesired data in between ranges. This patch also adds aborting active vectored reads when stream is closed or unbuffer is called.
🎊 +1 overall
This message was automatically generated. |
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 pending the little details I've suggested
...oop-common/src/test/java/org/apache/hadoop/fs/contract/AbstractContractVectoredReadTest.java
Outdated
Show resolved
Hide resolved
@@ -47,7 +47,7 @@ | |||
import org.apache.hadoop.fs.LocalFileSystem; | |||
import org.apache.hadoop.conf.Configuration; | |||
import org.apache.hadoop.fs.FileRange; | |||
import org.apache.hadoop.fs.FileRangeImpl; | |||
import org.apache.hadoop.fs.impl.FileRangeImpl; |
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.
shouldn't be needed now
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.
it is required actually.
} catch (Exception ex) { | ||
LOG.warn("Exception occurred while reading combined range from file {}", pathStr, ex); | ||
LOG.warn("Exception while reading a range {} from path {} ", combinedFileRange, pathStr, ex); |
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.
will we log noisily on an EOFException? as that probably doesn't need a stack trace & can just be logged at DEBUG
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.
Okay changing to debug.
Or do you think it is better to separate EOF exception in a different catch clause?
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 don't know.
🎊 +1 overall
This message was automatically generated. |
part of HADOOP-18103. Handling memory fragmentation in S3A vectored IO implementation by allocating smaller user range requested size buffers and directly filling them from the remote S3 stream and skipping undesired data in between ranges. This patch also adds aborting active vectored reads when stream is closed or unbuffer() is called. Contributed By: Mukund Thakur
on the EOF exception
should all be tested in the contract tests, if not done already |
All these will cause EOF because we validate ranges in the start only. Tests are there but not exactly like these. I can add some more next time. |
part of HADOOP-18103. Handling memory fragmentation in S3A vectored IO implementation by allocating smaller user range requested size buffers and directly filling them from the remote S3 stream and skipping undesired data in between ranges. This patch also adds aborting active vectored reads when stream is closed or unbuffer() is called. Contributed By: Mukund Thakur
part of HADOOP-18103. Handling memory fragmentation in S3A vectored IO implementation by allocating smaller user range requested size buffers and directly filling them from the remote S3 stream and skipping undesired data in between ranges. This patch also adds aborting active vectored reads when stream is closed or unbuffer() is called. Contributed By: Mukund Thakur Conflicts: hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/RawLocalFileSystem.java
…#4445) part of HADOOP-18103. Handling memory fragmentation in S3A vectored IO implementation by allocating smaller user range requested size buffers and directly filling them from the remote S3 stream and skipping undesired data in between ranges. This patch also adds aborting active vectored reads when stream is closed or unbuffer() is called. Contributed By: Mukund Thakur
Rebased the feature branch. Old pr link #4427
Description of PR
part of HADOOP-18103.
Handling memoroy fragmentation in S3A vectored IO implementation by
allocating smaller user range requested size buffers and directly
filling them from the remote S3 stream and skipping undesired
data in between ranges.
This patch also adds aborting active vectored reads when stream is
closed or unbuffer is called.
How was this patch tested?
Added new test and re-ran existing tests.
For code changes:
LICENSE
,LICENSE-binary
,NOTICE-binary
files?