summaryrefslogtreecommitdiffstats
path: root/config-model/src/main/java/com
diff options
context:
space:
mode:
Diffstat (limited to 'config-model/src/main/java/com')
-rw-r--r--config-model/src/main/java/com/yahoo/config/model/deploy/DeployState.java17
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/VespaModelFactory.java3
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/application/validation/JvmHeapSizeValidator.java1
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/container/ApplicationContainerCluster.java13
-rwxr-xr-xconfig-model/src/main/java/com/yahoo/vespa/model/container/ContainerCluster.java2
5 files changed, 7 insertions, 29 deletions
diff --git a/config-model/src/main/java/com/yahoo/config/model/deploy/DeployState.java b/config-model/src/main/java/com/yahoo/config/model/deploy/DeployState.java
index 647745eba5d..f19341098f4 100644
--- a/config-model/src/main/java/com/yahoo/config/model/deploy/DeployState.java
+++ b/config-model/src/main/java/com/yahoo/config/model/deploy/DeployState.java
@@ -27,7 +27,6 @@ import com.yahoo.config.model.application.provider.MockFileRegistry;
import com.yahoo.config.model.provision.HostsXmlProvisioner;
import com.yahoo.config.model.provision.SingleNodeProvisioner;
import com.yahoo.config.model.test.MockApplicationPackage;
-import com.yahoo.config.provision.ClusterSpec;
import com.yahoo.config.provision.DockerImage;
import com.yahoo.config.provision.Zone;
import com.yahoo.io.IOUtils;
@@ -93,7 +92,6 @@ public class DeployState implements ConfigDefinitionStore {
private final Reindexing reindexing;
private final ExecutorService executor;
private final OnnxModelCost onnxModelCost;
- private final Set<ClusterSpec.Id> restartingClusters;
public static DeployState createTestState() {
return new Builder().build();
@@ -129,8 +127,7 @@ public class DeployState implements ConfigDefinitionStore {
Optional<DockerImage> wantedDockerImageRepo,
Reindexing reindexing,
Optional<ValidationOverrides> validationOverrides,
- OnnxModelCost onnxModelCost,
- Set<ClusterSpec.Id> restartingClusters) {
+ OnnxModelCost onnxModelCost) {
this.logger = deployLogger;
this.fileRegistry = fileRegistry;
this.executor = executor;
@@ -159,7 +156,6 @@ public class DeployState implements ConfigDefinitionStore {
this.wantedDockerImageRepo = wantedDockerImageRepo;
this.reindexing = reindexing;
this.onnxModelCost = onnxModelCost;
- this.restartingClusters = Set.copyOf(restartingClusters);
}
public static HostProvisioner getDefaultModelHostProvisioner(ApplicationPackage applicationPackage) {
@@ -315,8 +311,6 @@ public class DeployState implements ConfigDefinitionStore {
public OnnxModelCost onnxModelCost() { return onnxModelCost; }
- public Set<ClusterSpec.Id> restartingClusters() { return restartingClusters; }
-
public boolean isHostedTenantApplication(ApplicationType type) {
boolean isTesterApplication = getProperties().applicationId().instance().isTester();
return isHosted() && type == ApplicationType.DEFAULT && !isTesterApplication;
@@ -346,7 +340,6 @@ public class DeployState implements ConfigDefinitionStore {
private Reindexing reindexing = null;
private Optional<ValidationOverrides> validationOverrides = Optional.empty();
private OnnxModelCost onnxModelCost = OnnxModelCost.disabled();
- private Set<ClusterSpec.Id> restartingClusters = Set.of();
public Builder() {}
@@ -466,11 +459,6 @@ public class DeployState implements ConfigDefinitionStore {
public Builder onnxModelCost(OnnxModelCost instance) { this.onnxModelCost = instance; return this; }
- public Builder restartingClusters(Set<ClusterSpec.Id> restartingClusters) {
- this.restartingClusters = Set.copyOf(restartingClusters);
- return this;
- }
-
public DeployState build() {
return build(new ValidationParameters());
}
@@ -504,8 +492,7 @@ public class DeployState implements ConfigDefinitionStore {
wantedDockerImageRepo,
reindexing,
validationOverrides,
- onnxModelCost,
- restartingClusters);
+ onnxModelCost);
}
}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/VespaModelFactory.java b/config-model/src/main/java/com/yahoo/vespa/model/VespaModelFactory.java
index 1b9d4004b5d..65572d07cc2 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/VespaModelFactory.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/VespaModelFactory.java
@@ -198,8 +198,7 @@ public class VespaModelFactory implements ModelFactory {
.now(clock.instant())
.wantedNodeVespaVersion(modelContext.wantedNodeVespaVersion())
.wantedDockerImageRepo(modelContext.wantedDockerImageRepo())
- .onnxModelCost(modelContext.onnxModelCost())
- .restartingClusters(modelContext.restartingClusters());
+ .onnxModelCost(modelContext.onnxModelCost());
modelContext.previousModel().ifPresent(builder::previousModel);
modelContext.reindexing().ifPresent(builder::reindexing);
return builder.build(validationParameters);
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/JvmHeapSizeValidator.java b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/JvmHeapSizeValidator.java
index 482c4477cdc..9cf5fe84c21 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/application/validation/JvmHeapSizeValidator.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/application/validation/JvmHeapSizeValidator.java
@@ -18,7 +18,6 @@ public class JvmHeapSizeValidator implements Validator {
@Override
public void validate(Context context) {
- if (!context.deployState().featureFlags().dynamicHeapSize()) return;
if (!context.deployState().isHostedTenantApplication(context.model().getAdmin().getApplicationType())) return;
context.model().getContainerClusters().forEach((clusterId, appCluster) -> {
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/ApplicationContainerCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/container/ApplicationContainerCluster.java
index 3fc194a505e..ed7646b3066 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/container/ApplicationContainerCluster.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/container/ApplicationContainerCluster.java
@@ -50,7 +50,6 @@ import java.util.LinkedHashSet;
import java.util.List;
import java.util.Optional;
import java.util.Set;
-import java.util.logging.Level;
import java.util.stream.Collectors;
import static com.yahoo.vespa.model.container.docproc.DocprocChains.DOCUMENT_TYPE_MANAGER_CLASS;
@@ -102,7 +101,6 @@ public final class ApplicationContainerCluster extends ContainerCluster<Applicat
private int zookeeperSessionTimeoutSeconds = 30;
private final int transport_events_before_wakeup;
private final int transport_connections_per_target;
- private final boolean dynamicHeapSize;
/** The heap size % of total memory available to the JVM process. */
private final int heapSizePercentageOfAvailableMemory;
@@ -116,7 +114,6 @@ public final class ApplicationContainerCluster extends ContainerCluster<Applicat
public ApplicationContainerCluster(TreeConfigProducer<?> parent, String configSubId, String clusterId, DeployState deployState) {
super(parent, configSubId, clusterId, deployState, true, 10);
this.tlsClientAuthority = deployState.tlsClientAuthority();
- dynamicHeapSize = deployState.featureFlags().dynamicHeapSize();
previousHosts = Collections.unmodifiableSet(deployState.getPreviousModel().stream()
.map(Model::allocatedHosts)
.map(AllocatedHosts::getHosts)
@@ -154,10 +151,8 @@ public final class ApplicationContainerCluster extends ContainerCluster<Applicat
registerApplicationBundles(deployState);
registerUserConfiguredFiles(deployState);
createEndpoints(deployState);
- if (onnxModelCostCalculator.restartOnDeploy() || deployState.restartingClusters().contains(id())) {
- deployState.getDeployLogger().log(Level.INFO, "Deferring config change until restart for cluster '" + id() + "'");
+ if (onnxModelCostCalculator.restartOnDeploy())
setDeferChangesUntilRestart(true);
- }
}
private void registerApplicationBundles(DeployState deployState) {
@@ -218,10 +213,8 @@ public final class ApplicationContainerCluster extends ContainerCluster<Applicat
if (getContainers().isEmpty()) return Optional.of(JvmMemoryPercentage.of(availableMemoryPercentage)); // Node memory is not known
// Node memory is known so convert available memory percentage to node memory percentage
- double totalMemory = dynamicHeapSize
- ? getContainers().stream().mapToDouble(c -> c.getHostResource().realResources().memoryGb()).min().orElseThrow()
- : getContainers().get(0).getHostResource().realResources().memoryGb();
- double jvmHeapDeductionGb = dynamicHeapSize ? onnxModelCostCalculator.aggregatedModelCostInBytes() / (1024D * 1024 * 1024) : 0;
+ double totalMemory = getContainers().stream().mapToDouble(c -> c.getHostResource().realResources().memoryGb()).min().orElseThrow();
+ double jvmHeapDeductionGb = onnxModelCostCalculator.aggregatedModelCostInBytes() / (1024D * 1024 * 1024);
double availableMemory = Math.max(0, totalMemory - Host.memoryOverheadGb - jvmHeapDeductionGb);
int memoryPercentage = (int) (availableMemory / totalMemory * availableMemoryPercentage);
logger.log(FINE, () -> "cluster id '%s': memoryPercentage=%d, availableMemory=%f, totalMemory=%f, availableMemoryPercentage=%d, jvmHeapDeductionGb=%f"
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 799e0bd62e8..aeb6c030a49 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
@@ -166,7 +166,7 @@ public abstract class ContainerCluster<CONTAINER extends Container>
private String hostClusterId = null;
private String jvmGCOptions = null;
- private boolean deferChangesUntilRestart = false;
+ private volatile boolean deferChangesUntilRestart = false;
private boolean clientsLegacyMode;
private List<Client> clients = List.of();