summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2020-03-06 19:23:11 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2020-03-06 19:23:11 +0000
commit24299c0eaaa88bf7338a7789fffc53a1ecc210d6 (patch)
tree21147a32811a83488ad20835d5efd97dc057ca74
parent285cac0df84b28e4a98ca4e3250c9c7ddfcdd761 (diff)
Use an interface that is more flexible.
-rw-r--r--config/src/main/java/com/yahoo/vespa/config/LZ4PayloadCompressor.java4
-rw-r--r--config/src/main/java/com/yahoo/vespa/config/protocol/Payload.java3
-rw-r--r--vespajlib/src/main/java/com/yahoo/compress/Compressor.java6
3 files changed, 7 insertions, 6 deletions
diff --git a/config/src/main/java/com/yahoo/vespa/config/LZ4PayloadCompressor.java b/config/src/main/java/com/yahoo/vespa/config/LZ4PayloadCompressor.java
index a70a2861cc8..ba2caaf3e91 100644
--- a/config/src/main/java/com/yahoo/vespa/config/LZ4PayloadCompressor.java
+++ b/config/src/main/java/com/yahoo/vespa/config/LZ4PayloadCompressor.java
@@ -26,8 +26,8 @@ public class LZ4PayloadCompressor {
return compressor.compressUnconditionally(input);
}
- public void decompress(byte[] input, byte[] output) {
- compressor.decompressUnconditionally(input, output);
+ public byte [] decompress(byte[] input, int uncompressedLen) {
+ return compressor.decompressUnconditionally(input, 0, uncompressedLen);
}
}
diff --git a/config/src/main/java/com/yahoo/vespa/config/protocol/Payload.java b/config/src/main/java/com/yahoo/vespa/config/protocol/Payload.java
index 88e8b21347f..13f9602f70c 100644
--- a/config/src/main/java/com/yahoo/vespa/config/protocol/Payload.java
+++ b/config/src/main/java/com/yahoo/vespa/config/protocol/Payload.java
@@ -60,8 +60,7 @@ public class Payload {
public Payload withCompression(CompressionType requestedCompression) {
CompressionType responseCompression = compressionInfo.getCompressionType();
if (requestedCompression == CompressionType.UNCOMPRESSED && responseCompression == CompressionType.LZ4) {
- byte[] buffer = new byte[compressionInfo.getUncompressedSize()];
- compressor.decompress(data.getBytes(), buffer);
+ byte[] buffer = compressor.decompress(data.getBytes(), compressionInfo.getUncompressedSize());
Utf8Array data = new Utf8Array(buffer);
CompressionInfo info = CompressionInfo.create(CompressionType.UNCOMPRESSED, compressionInfo.getUncompressedSize());
return Payload.from(data, info);
diff --git a/vespajlib/src/main/java/com/yahoo/compress/Compressor.java b/vespajlib/src/main/java/com/yahoo/compress/Compressor.java
index 77297ebcb50..bb1ca99c4ab 100644
--- a/vespajlib/src/main/java/com/yahoo/compress/Compressor.java
+++ b/vespajlib/src/main/java/com/yahoo/compress/Compressor.java
@@ -146,10 +146,12 @@ public class Compressor {
public byte[] compressUnconditionally(byte[] input) {
return getCompressor().compress(input);
}
- public void decompressUnconditionally(byte[] input, byte[] output) {
+
+ public byte [] decompressUnconditionally(byte[] input, int srcOffset, int uncompressedLen) {
if (input.length > 0) {
- factory.safeDecompressor().decompress(input, output);
+ return factory.fastDecompressor().decompress(input, srcOffset, uncompressedLen);
}
+ return new byte[0];
}
public long warmup(double seconds) {