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. |
steveloughran
left a comment
There was a problem hiding this comment.
+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
| 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.
shouldn't be needed now
There was a problem hiding this comment.
it is required actually.
There was a problem hiding this comment.
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.
Okay changing to debug.
Or do you think it is better to separate EOF exception in a different catch clause?
|
🎊 +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-binaryfiles?