summaryrefslogtreecommitdiffstats
path: root/configserver
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2021-08-30 12:11:35 +0200
committerHenning Baldersheim <balder@yahoo-inc.com>2021-08-30 12:11:35 +0200
commit37eaa36494321b3d3c1427fabf34ebe020f4b9ac (patch)
tree6868462525801a65eab185fa1577d891772e8546 /configserver
parent11e7a365a7f6e63b109f24f3f81ff4aaee9bad72 (diff)
lz4 compress blobs.
Diffstat (limited to 'configserver')
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/ApplicationFileManager.java9
1 files changed, 8 insertions, 1 deletions
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/ApplicationFileManager.java b/configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/ApplicationFileManager.java
index bde8567c34e..52d443e6998 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/ApplicationFileManager.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/ApplicationFileManager.java
@@ -3,6 +3,7 @@ package com.yahoo.vespa.config.server.filedistribution;
import com.yahoo.config.FileReference;
import com.yahoo.io.IOUtils;
+import net.jpountz.lz4.LZ4FrameOutputStream;
import java.io.File;
import java.io.FileOutputStream;
@@ -70,7 +71,13 @@ public class ApplicationFileManager implements AddFileInterface {
file = new File(path.toFile(), relativePath);
Files.createDirectories(file.getParentFile().toPath());
fos = new FileOutputStream(file);
- fos.write(blob.array(), blob.arrayOffset(), blob.remaining());
+ if (relativePath.endsWith(".lz4")) {
+ LZ4FrameOutputStream lz4 = new LZ4FrameOutputStream(fos);
+ lz4.write(blob.array(), blob.arrayOffset(), blob.remaining());
+ lz4.close();
+ } else {
+ fos.write(blob.array(), blob.arrayOffset(), blob.remaining());
+ }
return file;
} catch (IOException e) {
throw new IllegalArgumentException("Failed creating temp file", e);