diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2018-09-26 16:18:08 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-09-26 16:18:08 +0200 |
commit | b4bd563a4c22652437a39d83161f14abbb540f6e (patch) | |
tree | a7d2fae084392dea90584aefb69dcf7ebb33bae8 /container-accesslogging | |
parent | a246879bed135a7c5861eab5ad0da85e16e539d7 (diff) |
Revert "Revert "Balder/add native fadvise""
Diffstat (limited to 'container-accesslogging')
-rw-r--r-- | container-accesslogging/src/main/java/com/yahoo/container/logging/LogFileHandler.java | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/container-accesslogging/src/main/java/com/yahoo/container/logging/LogFileHandler.java b/container-accesslogging/src/main/java/com/yahoo/container/logging/LogFileHandler.java index d729b092670..9963429bf97 100644 --- a/container-accesslogging/src/main/java/com/yahoo/container/logging/LogFileHandler.java +++ b/container-accesslogging/src/main/java/com/yahoo/container/logging/LogFileHandler.java @@ -2,6 +2,7 @@ package com.yahoo.container.logging; import com.yahoo.container.core.AccessLogConfig; +import com.yahoo.io.NativeIO; import com.yahoo.log.LogFileDb; import java.io.File; @@ -263,15 +264,28 @@ public class LogFileHandler extends StreamHandler { numberOfRecords = 0; lastRotationTime = now; nextRotationTime = 0; //figure it out later (lazy evaluation) - if (compressOnRotation && (oldFileName != null)) { - triggerCompression(oldFileName); + if ((oldFileName != null)) { + if (compressOnRotation) { + triggerCompression(oldFileName); + } else { + NativeIO nativeIO = new NativeIO(); + nativeIO.dropFileFromCache(new File(oldFileName)); + } } } private void triggerCompression(String oldFileName) { try { + String gzippedFileName = oldFileName + ".gz"; Runtime r = Runtime.getRuntime(); - Process p = r.exec(new String[] { "gzip", oldFileName }); + StringBuilder cmd = new StringBuilder("gzip"); + cmd.append(" < "). append(oldFileName).append(" > ").append(gzippedFileName); + Process p = r.exec(cmd.toString()); + NativeIO nativeIO = new NativeIO(); + File oldFile = new File(oldFileName); + nativeIO.dropFileFromCache(oldFile); // Drop from cache in case somebody else has a reference to it preventing from dying quickly. + oldFile.delete(); + nativeIO.dropFileFromCache(new File(gzippedFileName)); // Detonator pattern: Think of all the fun we can have if gzip isn't what we // think it is, if it doesn't return, etc, etc } catch (IOException e) { |