[
https://issues.apache.org/jira/browse/HADOOP-13047?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15256495#comment-15256495
]
Steve Loughran commented on HADOOP-13047:
-----------------------------------------
# I like the simplicity of this being a buffer.
# There's no need to actually have a separate read+discard loop to go past the
available bytes; .skip() will do that, simply blocking until the data is ready.
(Though a sanity check at the end is probably wise)
# I'd like that buffer size to be settable via setReadahead(). Why? It would
allow applications which *really* knew what they were doing to actually set
readahead for their algorithms. Though I don't see any evidence of that method
being used anywhere in the Hadoop codebase —does anyone have any data on how
often code uses it?
# Patch -002 of HADOOP-13028 exposes the statistics of a stream via a visible
for testing method...this would all you to write a test which verified that a
forward seek within the buffer range worked. This is where that
{{setReadahead()}} call would really be useful, as you could change the buffer
size and verify that forward seeks simply increment the counter of bytes
skipped on seek; the number of stream close/open events would be unchanged.
> S3a Forward seek in stream length to be configurable
> ----------------------------------------------------
>
> Key: HADOOP-13047
> URL: https://issues.apache.org/jira/browse/HADOOP-13047
> Project: Hadoop Common
> Issue Type: Sub-task
> Components: fs/s3
> Affects Versions: 2.8.0
> Reporter: Steve Loughran
> Attachments: HADOOP-13047.WIP.2.patch, HADOOP-13047.WIP.patch
>
>
> Even with lazy seek, tests can show that sometimes a short-distance forward
> seek is triggering a close + reopen, because the threshold for the seek is
> simply available bytes in the inner stream.
> A configurable threshold would allow data to be read and discarded before
> that seek. This should be beneficial over long-haul networks as the time to
> set up the TCP channel is high, and TCP-slow-start means that the ramp up of
> bandwidth is slow. In such deployments, it will better to read forward than
> re-open, though the exact "best" number will vary with client and endpoint.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)