[ https://issues.apache.org/jira/browse/HADOOP-18184?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17746944#comment-17746944 ]
ASF GitHub Bot commented on HADOOP-18184: ----------------------------------------- steveloughran commented on code in PR #5832: URL: https://github.com/apache/hadoop/pull/5832#discussion_r1273422607 ########## hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/impl/prefetch/CachingBlockManager.java: ########## @@ -392,16 +413,41 @@ private void readBlock(BufferData data, boolean isPrefetch, BufferData.State... ops.end(op); } - if (isPrefetch) { - prefetchingStatistics.prefetchOperationCompleted(); - if (tracker != null) { - tracker.close(); - } + // update the statistics + prefetchingStatistics.fetchOperationCompleted(isPrefetch, bytesFetched); + if (tracker != null) { + tracker.close(); + LOG.debug("fetch completed: {}", tracker); } } } } + /** + * True if the manager has been closed. + */ + private boolean isClosed() { + return closed.get(); + } + + /** + * Disable caching; updates stream statistics and logs exactly once + * at info + * @param endOp operation which measured the duration of the write. + */ + private void disableCaching(final BlockOperations.End endOp) { + if (!cachingDisabled.getAndSet(true)) { + String message = String.format( + "Caching disabled because of slow operation (%.1f sec)", endOp.duration()); + LOG_CACHING_DISABLED.info(message); + prefetchingStatistics.setPrefetchCachingState(false); Review Comment: done in method, but not in gauge name. What if we ever allow a cache to memory option here? > 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