diff options
8 files changed, 23 insertions, 54 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/ContainerCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/container/ContainerCluster.java index c715081329a..d05650b10b5 100755 --- a/config-model/src/main/java/com/yahoo/vespa/model/container/ContainerCluster.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/container/ContainerCluster.java @@ -70,7 +70,6 @@ import java.util.List; import java.util.Map; import java.util.Objects; import java.util.Optional; -import java.util.OptionalDouble; import java.util.Set; /** @@ -652,16 +651,4 @@ public abstract class ContainerCluster<CONTAINER extends Container> public boolean getDeferChangesUntilRestart() { return deferChangesUntilRestart; } - /** - * Effective vcpu for the containers in cluster. Use this value as scale factor for performance/resource tuning. - * @deprecated Use {@link Runtime#availableProcessors()} directly on receiver of config instead. - **/ - @Deprecated(forRemoval = true) - public OptionalDouble vcpu() { - return getContainers().stream() - .filter(c -> c.getHostResource() != null && c.getHostResource().realResources() != null) - .mapToDouble(c -> c.getHostResource().realResources().vcpu()) - .max(); // Use highest vcpu as scale factor - } - } diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/component/AccessLogComponent.java b/config-model/src/main/java/com/yahoo/vespa/model/container/component/AccessLogComponent.java index 88aaf78ccec..33e712feeb1 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/container/component/AccessLogComponent.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/container/component/AccessLogComponent.java @@ -9,8 +9,6 @@ import com.yahoo.osgi.provider.model.ComponentModel; import com.yahoo.vespa.model.container.ApplicationContainerCluster; import com.yahoo.vespa.model.container.ContainerCluster; -import java.util.OptionalInt; - /** * @author Tony Vaagenes * @author gjoranv @@ -32,11 +30,10 @@ public final class AccessLogComponent extends SimpleComponent implements AccessL public AccessLogComponent(ContainerCluster<?> cluster, AccessLogType logType, CompressionType compressionType, String clusterName, boolean isHostedVespa) { - this(cluster, logType, compressionType, + this(logType, compressionType, String.format("logs/vespa/qrs/%s.%s.%s", capitalize(logType.name()), clusterName, "%Y%m%d%H%M%S"), null, null, isHostedVespa, - capitalize(logType.name()) + "." + clusterName, - queueSize(cluster).orElse(-1), + capitalize(logType.name()) + "." + clusterName, -1, ((cluster instanceof ApplicationContainerCluster) ? 4*1024*1024 : null)); } @@ -44,8 +41,7 @@ public final class AccessLogComponent extends SimpleComponent implements AccessL return name.substring(0, 1).toUpperCase() + name.substring(1); } - public AccessLogComponent(ContainerCluster<?> cluster, - AccessLogType logType, + public AccessLogComponent(AccessLogType logType, CompressionType compressionType, String fileNamePattern, String rotationInterval, @@ -69,14 +65,6 @@ public final class AccessLogComponent extends SimpleComponent implements AccessL throw new RuntimeException("File name pattern required when configuring access log."); } - @SuppressWarnings("removal") - private static OptionalInt queueSize(ContainerCluster<?> cluster) { - if (cluster == null) return OptionalInt.empty(); - double vcpu = cluster.vcpu().orElse(0); - if (vcpu <= 0) return OptionalInt.empty(); - return OptionalInt.of((int) Math.max(4096, Math.ceil(vcpu * 256.0))); - } - private static String accessLogClass(AccessLogType logType) { switch (logType) { case queryAccessLog: @@ -106,9 +94,7 @@ public final class AccessLogComponent extends SimpleComponent implements AccessL } else if (isHostedVespa) { builder.compressOnRotation(true); } - if (queueSize >= 0) { - builder.queueSize(queueSize); - } + builder.queueSize(queueSize); if (bufferSize != null) { builder.bufferSize(bufferSize); } diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/component/ConnectionLogComponent.java b/config-model/src/main/java/com/yahoo/vespa/model/container/component/ConnectionLogComponent.java index ec3a4d0834a..4afac252085 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/container/component/ConnectionLogComponent.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/container/component/ConnectionLogComponent.java @@ -6,39 +6,25 @@ import com.yahoo.container.logging.ConnectionLog; import com.yahoo.container.logging.ConnectionLogConfig; import com.yahoo.vespa.model.container.ContainerCluster; -import java.util.OptionalInt; - public class ConnectionLogComponent extends SimpleComponent implements ConnectionLogConfig.Producer { private final String logDirectoryName; private final String clusterName; - private final int queueSize; public ConnectionLogComponent(ContainerCluster<?> cluster, Class<? extends ConnectionLog> cls, String logDirectoryName) { - this(cluster, cls, logDirectoryName, cluster.getName()); + this(cls, logDirectoryName, cluster.getName()); } - public ConnectionLogComponent(ContainerCluster<?> cluster, Class<? extends ConnectionLog> cls, String logDirectoryName, String clusterName) { + public ConnectionLogComponent(Class<? extends ConnectionLog> cls, String logDirectoryName, String clusterName) { super(cls.getName()); this.logDirectoryName = logDirectoryName; this.clusterName = clusterName; - this.queueSize = queueSize(cluster).orElse(-1); - } - - @SuppressWarnings("removal") - private static OptionalInt queueSize(ContainerCluster<?> cluster) { - if (cluster == null) return OptionalInt.empty(); - double vcpu = cluster.vcpu().orElse(0); - if (vcpu <= 0) return OptionalInt.empty(); - return OptionalInt.of((int) Math.max(4096, Math.ceil(vcpu * 512.0))); } @Override public void getConfig(ConnectionLogConfig.Builder builder) { builder.cluster(clusterName); builder.logDirectoryName(logDirectoryName); - if (queueSize >= 0) { - builder.queueSize(queueSize); - } + builder.queueSize(-1); } } diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/xml/AccessLogBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/container/xml/AccessLogBuilder.java index d7812e9b4ff..62f04edf0ae 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/container/xml/AccessLogBuilder.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/container/xml/AccessLogBuilder.java @@ -55,7 +55,6 @@ public class AccessLogBuilder { @Override protected AccessLogComponent doBuild(DeployState deployState, AbstractConfigProducer<?> ancestor, Element spec) { return new AccessLogComponent( - (ContainerCluster<?>) ancestor, accessLogType, compressionType(spec, isHostedVespa), fileNamePattern(spec), diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ConfigServerContainerModelBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ConfigServerContainerModelBuilder.java index a1f52cca9fd..75f11020c15 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ConfigServerContainerModelBuilder.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ConfigServerContainerModelBuilder.java @@ -6,7 +6,6 @@ import com.yahoo.config.model.deploy.DeployState; import com.yahoo.container.logging.FileConnectionLog; import com.yahoo.vespa.model.container.ApplicationContainerCluster; import com.yahoo.vespa.model.container.ContainerModel; -import com.yahoo.vespa.model.container.ContainerModelEvaluation; import com.yahoo.vespa.model.container.component.AccessLogComponent; import com.yahoo.vespa.model.container.component.ConnectionLogComponent; import com.yahoo.vespa.model.container.configserver.ConfigserverCluster; @@ -48,7 +47,7 @@ public class ConfigServerContainerModelBuilder extends ContainerModelBuilder { if (isHosted()){ cluster.addComponent( new AccessLogComponent( - cluster, AccessLogComponent.AccessLogType.jsonAccessLog, AccessLogComponent.CompressionType.ZSTD, + AccessLogComponent.AccessLogType.jsonAccessLog, AccessLogComponent.CompressionType.ZSTD, "logs/vespa/configserver/access-json.log.%Y%m%d%H%M%S", null, true, true, "access-json.log", 1024,256*1024)); cluster.addComponent(new ConnectionLogComponent(cluster, FileConnectionLog.class, "configserver")); } else { diff --git a/config-model/src/test/java/com/yahoo/vespa/model/container/xml/AccessLogTest.java b/config-model/src/test/java/com/yahoo/vespa/model/container/xml/AccessLogTest.java index 80aafdd4ec7..06281c7b57e 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/container/xml/AccessLogTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/container/xml/AccessLogTest.java @@ -117,7 +117,7 @@ public class AccessLogTest extends ContainerModelBuilderTestBase { assertNotNull(connectionLogComponent); ConnectionLogConfig config = root.getConfig(ConnectionLogConfig.class, "default/component/com.yahoo.container.logging.FileConnectionLog"); assertEquals("default", config.cluster()); - assertEquals(10000, config.queueSize()); + assertEquals(-1, config.queueSize()); assertEquals(256*1024, config.bufferSize()); } diff --git a/container-core/src/main/java/com/yahoo/container/logging/AccessLogHandler.java b/container-core/src/main/java/com/yahoo/container/logging/AccessLogHandler.java index f14479899f5..55c3ad2ca8e 100644 --- a/container-core/src/main/java/com/yahoo/container/logging/AccessLogHandler.java +++ b/container-core/src/main/java/com/yahoo/container/logging/AccessLogHandler.java @@ -13,13 +13,19 @@ class AccessLogHandler { AccessLogHandler(AccessLogConfig.FileHandler config, LogWriter<RequestLogEntry> logWriter) { logFileHandler = new LogFileHandler<>( toCompression(config), config.bufferSize(), config.pattern(), config.rotation(), - config.symlink(), config.queueSize(), "request-logger", logWriter); + config.symlink(), queueSize(config), "request-logger", logWriter); + } + + private static int queueSize(AccessLogConfig.FileHandler config) { + if (config.queueSize() != -1) return config.queueSize(); + return Math.max(4096, Runtime.getRuntime().availableProcessors() * 256); } public void log(RequestLogEntry entry) { logFileHandler.publish(entry); } + private LogFileHandler.Compression toCompression(AccessLogConfig.FileHandler config) { if (!config.compressOnRotation()) return LogFileHandler.Compression.NONE; switch (config.compressionFormat()) { diff --git a/container-core/src/main/java/com/yahoo/container/logging/FileConnectionLog.java b/container-core/src/main/java/com/yahoo/container/logging/FileConnectionLog.java index 749426d3da9..273d562d048 100644 --- a/container-core/src/main/java/com/yahoo/container/logging/FileConnectionLog.java +++ b/container-core/src/main/java/com/yahoo/container/logging/FileConnectionLog.java @@ -14,7 +14,13 @@ public class FileConnectionLog extends AbstractComponent implements ConnectionLo @Inject public FileConnectionLog(ConnectionLogConfig config) { - logHandler = new ConnectionLogHandler(config.logDirectoryName(), config.bufferSize(), config.cluster(), config.queueSize(), new JsonConnectionLogWriter()); + logHandler = new ConnectionLogHandler(config.logDirectoryName(), config.bufferSize(), config.cluster(), + queueSize(config), new JsonConnectionLogWriter()); + } + + private static int queueSize(ConnectionLogConfig config) { + if (config.queueSize() != -1) return config.queueSize(); + return Math.max(4096, Runtime.getRuntime().availableProcessors() * 512); } @Override |