summaryrefslogtreecommitdiffstats
path: root/configserver
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2017-12-08 19:50:40 +0100
committerHenning Baldersheim <balder@yahoo-inc.com>2017-12-08 19:50:40 +0100
commitf17e602d96701f81e405e3b740c65df95365e9ca (patch)
tree1a9239b0e806c445e4ff332e361e70db21888cc7 /configserver
parent08548b78355a3c4fbe1a82e2e54d03156a108b01 (diff)
Use the LazyFileReferenceData to avoid filling memory.
Diffstat (limited to 'configserver')
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/FileServer.java14
1 files changed, 5 insertions, 9 deletions
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/FileServer.java b/configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/FileServer.java
index b228f0ca5c8..81f5e62016a 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/FileServer.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/FileServer.java
@@ -21,6 +21,7 @@ import com.yahoo.vespa.filedistribution.CompressedFileReference;
import com.yahoo.vespa.filedistribution.FileDownloader;
import com.yahoo.vespa.filedistribution.FileReferenceData;
import com.yahoo.vespa.filedistribution.FileReferenceDataBlob;
+import com.yahoo.vespa.filedistribution.LazyFileReferenceData;
import java.io.File;
import java.io.IOException;
@@ -125,21 +126,16 @@ public class FileServer {
log.info("Done serving reference '" + reference.toString() + "' with file '" + file.getAbsolutePath() + "'");
}
-
private FileReferenceData readFileReferenceData(FileReference reference) throws IOException {
File file = root.getFile(reference);
- byte[] blob;
- FileReferenceData.Type type;
if (file.isDirectory()) {
- type = FileReferenceData.Type.compressed;
- blob = CompressedFileReference.compress(file.getParentFile());
+ //TODO Here we should compress to file, but then we have to clean up too. Pending.
+ byte [] blob = CompressedFileReference.compress(file.getParentFile());
+ return new FileReferenceDataBlob(reference, file.getName(), FileReferenceData.Type.compressed, blob);
} else {
- type = FileReferenceData.Type.file;
- blob = IOUtils.readFileBytes(file);
+ return new LazyFileReferenceData(reference, file.getName(), FileReferenceData.Type.file, file);
}
-
- return new FileReferenceDataBlob(reference, file.getName(), type, blob);
}
public void serveFile(Request request, Receiver receiver) {
pullExecutor.execute(() -> serveFile(request.parameters().get(0).asString(), request, receiver));