diff --git ql/src/java/org/apache/hadoop/hive/ql/log/HushableRandomAccessFileAppender.java ql/src/java/org/apache/hadoop/hive/ql/log/HushableRandomAccessFileAppender.java index 0ff66df441..18fa21d315 100644 --- ql/src/java/org/apache/hadoop/hive/ql/log/HushableRandomAccessFileAppender.java +++ ql/src/java/org/apache/hadoop/hive/ql/log/HushableRandomAccessFileAppender.java @@ -20,7 +20,11 @@ import java.io.Serializable; import java.util.HashMap; import java.util.Map; +import java.util.concurrent.TimeUnit; +import com.google.common.cache.CacheBuilder; +import com.google.common.cache.CacheLoader; +import com.google.common.cache.LoadingCache; import org.apache.logging.log4j.core.Filter; import org.apache.logging.log4j.core.Layout; import org.apache.logging.log4j.core.LogEvent; @@ -47,6 +51,17 @@ public final class HushableRandomAccessFileAppender extends AbstractOutputStreamAppender { + private static final LoadingCache CLOSED_FILES = + CacheBuilder.newBuilder().maximumSize(1000) + .expireAfterWrite(5, TimeUnit.SECONDS) + .build(new CacheLoader() { + @Override + public String load(String key) throws Exception { + return key; + } + }); + + private final String fileName; private Object advertisement; private final Advertiser advertiser; @@ -71,6 +86,7 @@ private HushableRandomAccessFileAppender(final String name, final Layout