summaryrefslogtreecommitdiffstats
path: root/filedistribution
diff options
context:
space:
mode:
authorHarald Musum <musum@yahooinc.com>2022-07-06 19:31:51 +0200
committerHarald Musum <musum@yahooinc.com>2022-07-06 19:31:51 +0200
commitbfad7115165a61fe3d7490066b55f642f11b7bf5 (patch)
tree232b62568f94632be68ae151e0604a570f4d0f60 /filedistribution
parent4844d012f069fe82c3294d6c169feaacbbf69ea4 (diff)
Make sure to set compression type in file distribution meta request
Diffstat (limited to 'filedistribution')
-rw-r--r--filedistribution/src/main/java/com/yahoo/vespa/filedistribution/EmptyFileReferenceData.java2
-rw-r--r--filedistribution/src/main/java/com/yahoo/vespa/filedistribution/FileReceiver.java1
-rw-r--r--filedistribution/src/main/java/com/yahoo/vespa/filedistribution/FileReferenceCompressor.java4
-rw-r--r--filedistribution/src/main/java/com/yahoo/vespa/filedistribution/FileReferenceData.java6
-rw-r--r--filedistribution/src/main/java/com/yahoo/vespa/filedistribution/LazyFileReferenceData.java4
-rw-r--r--filedistribution/src/main/java/com/yahoo/vespa/filedistribution/LazyTemporaryStorageFileReferenceData.java4
-rw-r--r--filedistribution/src/test/java/com/yahoo/vespa/filedistribution/FileReferenceDataTest.java9
7 files changed, 19 insertions, 11 deletions
diff --git a/filedistribution/src/main/java/com/yahoo/vespa/filedistribution/EmptyFileReferenceData.java b/filedistribution/src/main/java/com/yahoo/vespa/filedistribution/EmptyFileReferenceData.java
index 8b3bc32ff71..ea8461b42f3 100644
--- a/filedistribution/src/main/java/com/yahoo/vespa/filedistribution/EmptyFileReferenceData.java
+++ b/filedistribution/src/main/java/com/yahoo/vespa/filedistribution/EmptyFileReferenceData.java
@@ -12,7 +12,7 @@ public class EmptyFileReferenceData extends FileReferenceData {
private int contentRead = 0;
private EmptyFileReferenceData(FileReference fileReference, String filename, Type type, byte[] content, long xxhash) {
- super(fileReference, filename, type);
+ super(fileReference, filename, type, CompressionType.gzip);
this.content = content;
this.xxhash = xxhash;
}
diff --git a/filedistribution/src/main/java/com/yahoo/vespa/filedistribution/FileReceiver.java b/filedistribution/src/main/java/com/yahoo/vespa/filedistribution/FileReceiver.java
index 65c6dd5931d..a285fbaafe2 100644
--- a/filedistribution/src/main/java/com/yahoo/vespa/filedistribution/FileReceiver.java
+++ b/filedistribution/src/main/java/com/yahoo/vespa/filedistribution/FileReceiver.java
@@ -129,6 +129,7 @@ public class FileReceiver {
moveFileToDestination(inprogressFile, file);
} else {
decompressedDir = Files.createTempDirectory(tmpDir.toPath(), "archive").toFile();
+ log.log(Level.FINE, () -> "compression type to use=" + compressionType);
new FileReferenceCompressor(fileType, compressionType).decompress(inprogressFile, decompressedDir);
moveFileToDestination(decompressedDir, fileReferenceDir);
}
diff --git a/filedistribution/src/main/java/com/yahoo/vespa/filedistribution/FileReferenceCompressor.java b/filedistribution/src/main/java/com/yahoo/vespa/filedistribution/FileReferenceCompressor.java
index b485e6ded86..efb845bafe7 100644
--- a/filedistribution/src/main/java/com/yahoo/vespa/filedistribution/FileReferenceCompressor.java
+++ b/filedistribution/src/main/java/com/yahoo/vespa/filedistribution/FileReferenceCompressor.java
@@ -118,9 +118,9 @@ public class FileReferenceCompressor {
}
private OutputStream compressedOutputStream(File outputFile) throws IOException {
- log.log(Level.FINE, () -> "Compressing with type " + type + " and compression type " + compressionType);
switch (type) {
case compressed:
+ log.log(Level.FINE, () -> "Compressing with compression type " + compressionType);
switch (compressionType) {
case gzip:
return new GZIPOutputStream(new FileOutputStream(outputFile));
@@ -137,9 +137,9 @@ public class FileReferenceCompressor {
}
private InputStream decompressedInputStream(File inputFile) throws IOException {
- log.log(Level.FINE, () -> "Decompressing with type " + type + " and compression type " + compressionType);
switch (type) {
case compressed:
+ log.log(Level.FINE, () -> "Decompressing with compression type " + compressionType);
switch (compressionType) {
case gzip:
return new GZIPInputStream(new FileInputStream(inputFile));
diff --git a/filedistribution/src/main/java/com/yahoo/vespa/filedistribution/FileReferenceData.java b/filedistribution/src/main/java/com/yahoo/vespa/filedistribution/FileReferenceData.java
index d14f690b2d3..3f83cbea506 100644
--- a/filedistribution/src/main/java/com/yahoo/vespa/filedistribution/FileReferenceData.java
+++ b/filedistribution/src/main/java/com/yahoo/vespa/filedistribution/FileReferenceData.java
@@ -18,11 +18,13 @@ public abstract class FileReferenceData {
private final FileReference fileReference;
private final String filename;
private final Type type;
+ private final CompressionType compressionType;
- public FileReferenceData(FileReference fileReference, String filename, Type type) {
+ public FileReferenceData(FileReference fileReference, String filename, Type type, CompressionType compressionType) {
this.fileReference = fileReference;
this.filename = filename;
this.type = type;
+ this.compressionType = compressionType;
}
public FileReference fileReference() {return fileReference;}
@@ -31,6 +33,8 @@ public abstract class FileReferenceData {
public Type type() {return type;}
+ public CompressionType compressionType() { return compressionType;}
+
public ByteBuffer content() {
ByteBuffer bb = ByteBuffer.allocate((int)size());
while (bb.remaining() > 0) {
diff --git a/filedistribution/src/main/java/com/yahoo/vespa/filedistribution/LazyFileReferenceData.java b/filedistribution/src/main/java/com/yahoo/vespa/filedistribution/LazyFileReferenceData.java
index 10de9c072b9..c8fbb639b35 100644
--- a/filedistribution/src/main/java/com/yahoo/vespa/filedistribution/LazyFileReferenceData.java
+++ b/filedistribution/src/main/java/com/yahoo/vespa/filedistribution/LazyFileReferenceData.java
@@ -17,8 +17,8 @@ public class LazyFileReferenceData extends FileReferenceData {
private final ReadableByteChannel channel;
private final StreamingXXHash64 hasher;
- public LazyFileReferenceData(FileReference fileReference, String filename, Type type, File file) throws IOException {
- super(fileReference, filename, type);
+ public LazyFileReferenceData(FileReference fileReference, String filename, Type type, File file, CompressionType compressionType) throws IOException {
+ super(fileReference, filename, type, compressionType);
this.file = file;
channel = Files.newByteChannel(file.toPath());
this.hasher = XXHashFactory.fastestInstance().newStreamingHash64(0);
diff --git a/filedistribution/src/main/java/com/yahoo/vespa/filedistribution/LazyTemporaryStorageFileReferenceData.java b/filedistribution/src/main/java/com/yahoo/vespa/filedistribution/LazyTemporaryStorageFileReferenceData.java
index 974d5ff1489..a69370b28ff 100644
--- a/filedistribution/src/main/java/com/yahoo/vespa/filedistribution/LazyTemporaryStorageFileReferenceData.java
+++ b/filedistribution/src/main/java/com/yahoo/vespa/filedistribution/LazyTemporaryStorageFileReferenceData.java
@@ -12,8 +12,8 @@ import java.nio.file.Files;
*/
public class LazyTemporaryStorageFileReferenceData extends LazyFileReferenceData {
- public LazyTemporaryStorageFileReferenceData(FileReference fileReference, String filename, Type type, File file) throws IOException {
- super(fileReference, filename, type, file);
+ public LazyTemporaryStorageFileReferenceData(FileReference fileReference, String filename, Type type, File file, CompressionType compressionType) throws IOException {
+ super(fileReference, filename, type, file, compressionType);
}
public void close() {
diff --git a/filedistribution/src/test/java/com/yahoo/vespa/filedistribution/FileReferenceDataTest.java b/filedistribution/src/test/java/com/yahoo/vespa/filedistribution/FileReferenceDataTest.java
index 66b731f204b..eda93331c73 100644
--- a/filedistribution/src/test/java/com/yahoo/vespa/filedistribution/FileReferenceDataTest.java
+++ b/filedistribution/src/test/java/com/yahoo/vespa/filedistribution/FileReferenceDataTest.java
@@ -7,12 +7,15 @@ import com.yahoo.text.Utf8;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.TemporaryFolder;
-
import java.io.File;
import java.io.IOException;
import java.nio.ByteBuffer;
import java.util.Arrays;
+import static com.yahoo.vespa.filedistribution.FileReferenceData.CompressionType;
+import static com.yahoo.vespa.filedistribution.FileReferenceData.CompressionType.gzip;
+import static com.yahoo.vespa.filedistribution.FileReferenceData.Type;
+import static com.yahoo.vespa.filedistribution.FileReferenceData.Type.compressed;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
@@ -27,7 +30,7 @@ public class FileReferenceDataTest {
String content = "blob";
File tempFile = writeTempFile(content);
FileReferenceData fileReferenceData =
- new LazyTemporaryStorageFileReferenceData(new FileReference("ref"), "foo", FileReferenceData.Type.compressed, tempFile);
+ new LazyTemporaryStorageFileReferenceData(new FileReference("ref"), "foo", compressed, tempFile, gzip);
ByteBuffer byteBuffer = ByteBuffer.allocate(100);
assertEquals(4, fileReferenceData.nextContent(byteBuffer));
assertEquals(content, Utf8.toString(Arrays.copyOfRange(byteBuffer.array(), 0, 4)));
@@ -44,7 +47,7 @@ public class FileReferenceDataTest {
String content = "blobbblubbblabb";
File file = writeTempFile(content);
FileReferenceData fileReferenceData =
- new LazyFileReferenceData(new FileReference("ref"), "foo", FileReferenceData.Type.compressed, file);
+ new LazyFileReferenceData(new FileReference("ref"), "foo", Type.compressed, file, CompressionType.gzip);
ByteBuffer byteBuffer = ByteBuffer.allocate(10);
assertEquals(10, fileReferenceData.nextContent(byteBuffer));
assertEquals(content.substring(0,10), Utf8.toString(Arrays.copyOfRange(byteBuffer.array(), 0, 10)));