aboutsummaryrefslogtreecommitdiffstats
path: root/configserver
diff options
context:
space:
mode:
authorHarald Musum <musum@verizonmedia.com>2022-05-25 14:07:24 +0200
committerGitHub <noreply@github.com>2022-05-25 14:07:24 +0200
commit353df3dd7e0f92a60e94a61093c242c2056cd981 (patch)
tree3ed42e1d2c4715dc4b938d1f6611bafa0bd89585 /configserver
parent69bb4e0e94cd71aec2b6b20ba146e40394c8a087 (diff)
Revert "Support compressing files (not just directories) in file distribution [run-systemtest]"
Diffstat (limited to 'configserver')
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/FileServer.java42
-rw-r--r--configserver/src/test/java/com/yahoo/vespa/config/server/filedistribution/FileServerTest.java5
-rw-r--r--configserver/src/test/java/com/yahoo/vespa/config/server/rpc/MockRpcServer.java3
-rw-r--r--configserver/src/test/java/com/yahoo/vespa/config/server/rpc/RpcTester.java17
4 files changed, 23 insertions, 44 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 14d99cc17af..1edcd3c4d31 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
@@ -13,18 +13,14 @@ import com.yahoo.jrt.Supervisor;
import com.yahoo.jrt.Transport;
import com.yahoo.vespa.config.ConnectionPool;
import com.yahoo.vespa.defaults.Defaults;
+import com.yahoo.vespa.filedistribution.FileReferenceCompressor;
import com.yahoo.vespa.filedistribution.EmptyFileReferenceData;
import com.yahoo.vespa.filedistribution.FileDistributionConnectionPool;
import com.yahoo.vespa.filedistribution.FileDownloader;
-import com.yahoo.vespa.filedistribution.FileReferenceCompressor;
import com.yahoo.vespa.filedistribution.FileReferenceData;
import com.yahoo.vespa.filedistribution.FileReferenceDownload;
import com.yahoo.vespa.filedistribution.LazyFileReferenceData;
import com.yahoo.vespa.filedistribution.LazyTemporaryStorageFileReferenceData;
-import com.yahoo.vespa.flags.BooleanFlag;
-import com.yahoo.vespa.flags.FlagSource;
-import com.yahoo.vespa.flags.Flags;
-import com.yahoo.vespa.flags.StringFlag;
import com.yahoo.yolean.Exceptions;
import java.io.File;
import java.io.IOException;
@@ -40,6 +36,7 @@ import java.util.logging.Level;
import java.util.logging.Logger;
import static com.yahoo.vespa.config.server.filedistribution.FileDistributionUtil.getOtherConfigServersInCluster;
+import static com.yahoo.vespa.filedistribution.FileReferenceData.Type.compressed;
public class FileServer {
@@ -51,8 +48,6 @@ public class FileServer {
private final FileDirectory root;
private final ExecutorService executor;
private final FileDownloader downloader;
- private final StringFlag compressionAlgorithm;
- private final BooleanFlag compressSingleFiles;
private enum FileApiErrorCodes {
OK(0, "OK"),
@@ -85,24 +80,21 @@ public class FileServer {
@SuppressWarnings("WeakerAccess") // Created by dependency injection
@Inject
- public FileServer(ConfigserverConfig configserverConfig, FlagSource flagSource) {
+ public FileServer(ConfigserverConfig configserverConfig) {
this(new File(Defaults.getDefaults().underVespaHome(configserverConfig.fileReferencesDir())),
- createFileDownloader(getOtherConfigServersInCluster(configserverConfig)),
- flagSource);
+ createFileDownloader(getOtherConfigServersInCluster(configserverConfig)));
}
// For testing only
- public FileServer(File rootDir, FlagSource flagSource) {
- this(rootDir, createFileDownloader(List.of()), flagSource);
+ public FileServer(File rootDir) {
+ this(rootDir, createFileDownloader(List.of()));
}
- public FileServer(File rootDir, FileDownloader fileDownloader, FlagSource flagSource) {
+ public FileServer(File rootDir, FileDownloader fileDownloader) {
this.downloader = fileDownloader;
this.root = new FileDirectory(rootDir);
this.executor = Executors.newFixedThreadPool(Math.max(8, Runtime.getRuntime().availableProcessors()),
new DaemonThreadFactory("file-server-"));
- this.compressionAlgorithm = Flags.FILE_DISTRIBUTION_COMPRESSION_ALGORITHM.bindTo(flagSource);
- this.compressSingleFiles = Flags.FILE_DISTRIBUTION_COMPRESS_SINGLE_FILES.bindTo(flagSource);
}
boolean hasFile(String fileReference) {
@@ -155,27 +147,17 @@ public class FileServer {
}
private FileReferenceData readFileReferenceData(FileReference reference) throws IOException {
- FileReferenceData.Type type = FileReferenceData.from(compressionAlgorithm.value());
File file = root.getFile(reference);
- String fileName = file.getName();
+
if (file.isDirectory()) {
- return createFileReferenceData(file.getParentFile(), reference, type, fileName);
- } else if (compressSingleFiles.value()) {
- return createFileReferenceData(file, reference, type, fileName);
+ Path tempFile = Files.createTempFile("filereferencedata", reference.value());
+ File compressedFile = new FileReferenceCompressor(compressed).compress(file.getParentFile(), tempFile.toFile());
+ return new LazyTemporaryStorageFileReferenceData(reference, file.getName(), compressed, compressedFile);
} else {
- return new LazyFileReferenceData(reference, fileName, FileReferenceData.Type.file, file);
+ return new LazyFileReferenceData(reference, file.getName(), FileReferenceData.Type.file, file);
}
}
- LazyTemporaryStorageFileReferenceData createFileReferenceData(File file,
- FileReference reference,
- FileReferenceData.Type type,
- String fileName) throws IOException {
- Path tempFile = Files.createTempFile("filereferencedata", reference.value());
- File compressedFile = new FileReferenceCompressor(type).compress(file.getParentFile(), tempFile.toFile());
- return new LazyTemporaryStorageFileReferenceData(reference, fileName, type, compressedFile);
- }
-
public void serveFile(String fileReference, boolean downloadFromOtherSourceIfNotFound, Request request, Receiver receiver) {
if (executor instanceof ThreadPoolExecutor)
log.log(Level.FINE, () -> "Active threads: " + ((ThreadPoolExecutor) executor).getActiveCount());
diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/filedistribution/FileServerTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/filedistribution/FileServerTest.java
index 216a81af0ab..67c40f94b6a 100644
--- a/configserver/src/test/java/com/yahoo/vespa/config/server/filedistribution/FileServerTest.java
+++ b/configserver/src/test/java/com/yahoo/vespa/config/server/filedistribution/FileServerTest.java
@@ -10,7 +10,6 @@ import com.yahoo.net.HostName;
import com.yahoo.vespa.filedistribution.FileDownloader;
import com.yahoo.vespa.filedistribution.FileReferenceData;
import com.yahoo.vespa.filedistribution.FileReferenceDownload;
-import com.yahoo.vespa.flags.InMemoryFlagSource;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
@@ -38,7 +37,7 @@ public class FileServerTest {
@Before
public void setup() throws IOException {
File rootDir = new File(temporaryFolder.newFolder("fileserver-root").getAbsolutePath());
- fileServer = new FileServer(rootDir, new MockFileDownloader(rootDir), new InMemoryFlagSource());
+ fileServer = new FileServer(rootDir, new MockFileDownloader(rootDir));
}
@Test
@@ -118,7 +117,7 @@ public class FileServerTest {
private FileServer createFileServer(ConfigserverConfig.Builder configBuilder) throws IOException {
File fileReferencesDir = temporaryFolder.newFolder();
configBuilder.fileReferencesDir(fileReferencesDir.getAbsolutePath());
- return new FileServer(new ConfigserverConfig(configBuilder), new InMemoryFlagSource());
+ return new FileServer(new ConfigserverConfig(configBuilder));
}
private static class FileReceiver implements FileServer.Receiver {
diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/rpc/MockRpcServer.java b/configserver/src/test/java/com/yahoo/vespa/config/server/rpc/MockRpcServer.java
index 77f67604aad..3272689473e 100644
--- a/configserver/src/test/java/com/yahoo/vespa/config/server/rpc/MockRpcServer.java
+++ b/configserver/src/test/java/com/yahoo/vespa/config/server/rpc/MockRpcServer.java
@@ -11,7 +11,6 @@ import com.yahoo.vespa.config.server.host.ConfigRequestHostLivenessTracker;
import com.yahoo.vespa.config.server.host.HostRegistry;
import com.yahoo.vespa.config.server.monitoring.Metrics;
import com.yahoo.vespa.config.server.rpc.security.NoopRpcAuthorizer;
-import com.yahoo.vespa.flags.InMemoryFlagSource;
import java.io.File;
import java.time.Duration;
@@ -40,7 +39,7 @@ public class MockRpcServer extends RpcServer {
Metrics.createTestMetrics(),
new HostRegistry(),
new ConfigRequestHostLivenessTracker(),
- new FileServer(tempDir, new InMemoryFlagSource()),
+ new FileServer(tempDir),
new NoopRpcAuthorizer(),
new RpcRequestHandlerProvider());
}
diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/rpc/RpcTester.java b/configserver/src/test/java/com/yahoo/vespa/config/server/rpc/RpcTester.java
index 73312710c45..40ed20b7969 100644
--- a/configserver/src/test/java/com/yahoo/vespa/config/server/rpc/RpcTester.java
+++ b/configserver/src/test/java/com/yahoo/vespa/config/server/rpc/RpcTester.java
@@ -112,21 +112,20 @@ public class RpcTester implements AutoCloseable {
}
RpcServer createRpcServer(ConfigserverConfig config) throws IOException {
- InMemoryFlagSource flagSource = new InMemoryFlagSource();
RpcServer rpcServer = new RpcServer(config,
- new SuperModelRequestHandler(new TestConfigDefinitionRepo(),
+ new SuperModelRequestHandler(new TestConfigDefinitionRepo(),
configserverConfig,
new SuperModelManager(
config,
Zone.defaultZone(),
new MemoryGenerationCounter(),
- flagSource)),
- Metrics.createTestMetrics(),
- hostRegistry,
- hostLivenessTracker,
- new FileServer(temporaryFolder.newFolder(), flagSource),
- new NoopRpcAuthorizer(),
- new RpcRequestHandlerProvider());
+ new InMemoryFlagSource())),
+ Metrics.createTestMetrics(),
+ hostRegistry,
+ hostLivenessTracker,
+ new FileServer(temporaryFolder.newFolder()),
+ new NoopRpcAuthorizer(),
+ new RpcRequestHandlerProvider());
rpcServer.setUpGetConfigHandlers();
return rpcServer;
}