[ https://issues.apache.org/jira/browse/HADOOP-18184?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17746939#comment-17746939 ]
ASF GitHub Bot commented on HADOOP-18184: ----------------------------------------- steveloughran commented on code in PR #5832: URL: https://github.com/apache/hadoop/pull/5832#discussion_r1273419854 ########## hadoop-tools/hadoop-aws/src/main/java/org/apache/hadoop/fs/s3a/prefetch/S3ARemoteInputStream.java: ########## @@ -409,27 +455,54 @@ protected String getOffsetStr(long offset) { return String.format("%d:%d", blockNumber, offset); } + @Override + public synchronized void unbuffer() { + LOG.debug("{}: unbuffered", getName()); + if (closeStream(true)) { + getS3AStreamStatistics().unbuffered(); + } + } + + /** + * Close the stream in close() or unbuffer(). + * @param unbuffer is this an unbuffer operation? + * @return true if the stream was closed; false means it was already closed. + */ + protected boolean closeStream(final boolean unbuffer) { + + if (underlyingResourcesClosed.getAndSet(true)) { + return false; + } + + if (unbuffer) { Review Comment: done > s3a prefetching stream to support unbuffer() > -------------------------------------------- > > Key: HADOOP-18184 > URL: https://issues.apache.org/jira/browse/HADOOP-18184 > Project: Hadoop Common > Issue Type: Sub-task > Components: fs/s3 > Affects Versions: 3.4.0 > Reporter: Steve Loughran > Assignee: Steve Loughran > Priority: Minor > Labels: pull-request-available > > Apache Impala uses unbuffer() to free up all client side resources held by a > stream, so allowing it to have a map of available (path -> stream) objects, > retained across queries. > This saves on having to reopen the files, with the cost of HEAD checks etc. > S3AInputStream just closes its http connection. here there is a lot more > state to discard, but all memory and file storage must be freed. > until this done, ITestS3AContractUnbuffer must skip when the prefetch stream > is used. > its notable that the other tests don't fail, even though the stream doesn't > implement the interface; the graceful degradation handles that. it should > fail if the test xml resource says the stream does it, but that the stream > capabilities say it doesn't. -- This message was sent by Atlassian Jira (v8.20.10#820010) --------------------------------------------------------------------- To unsubscribe, e-mail: common-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-issues-h...@hadoop.apache.org