summaryrefslogtreecommitdiffstats
path: root/config-model/src/main/java
diff options
context:
space:
mode:
authorHarald Musum <musum@verizonmedia.com>2021-08-16 10:49:40 +0200
committerHarald Musum <musum@verizonmedia.com>2021-08-16 10:49:40 +0200
commite5312c400cb8de725a4cf233808ee2f9f9a79798 (patch)
treee296aa664accc95ab08780ae484d11ef22d15553 /config-model/src/main/java
parente536003faa53fd4df212010357d2327946122c14 (diff)
Stop sending hints about files that should be downloaded when doing prepare
This is just an optimzation and is not today in hosted Vespa, since authorization will not allow access to any new files until application is activated anyway
Diffstat (limited to 'config-model/src/main/java')
-rw-r--r--config-model/src/main/java/com/yahoo/config/model/test/MockRoot.java7
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/VespaModel.java10
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminBuilderBase.java8
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/filedistribution/FileDistributionConfigProducer.java11
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/filedistribution/FileDistributor.java29
5 files changed, 14 insertions, 51 deletions
diff --git a/config-model/src/main/java/com/yahoo/config/model/test/MockRoot.java b/config-model/src/main/java/com/yahoo/config/model/test/MockRoot.java
index 87d6554f691..d95da6e9a7c 100644
--- a/config-model/src/main/java/com/yahoo/config/model/test/MockRoot.java
+++ b/config-model/src/main/java/com/yahoo/config/model/test/MockRoot.java
@@ -26,7 +26,6 @@ import java.io.IOException;
import java.io.StringReader;
import java.util.ArrayList;
import java.util.Collections;
-import java.util.List;
import java.util.Set;
@@ -41,10 +40,10 @@ public class MockRoot extends AbstractConfigProducerRoot {
private static final long serialVersionUID = 1L;
- private HostSystem hostSystem;
+ private final HostSystem hostSystem;
private final DeployState deployState;
- private FileDistributor fileDistributor;
+ private final FileDistributor fileDistributor;
private Admin admin;
public MockRoot() {
@@ -67,7 +66,7 @@ public class MockRoot extends AbstractConfigProducerRoot {
super(rootConfigId);
hostSystem = new HostSystem(this, "hostsystem", deployState.getProvisioner(), deployState.getDeployLogger());
this.deployState = deployState;
- fileDistributor = new FileDistributor(deployState.getFileRegistry(), List.of(), deployState.isHosted());
+ fileDistributor = new FileDistributor(deployState.getFileRegistry());
}
public FileDistributionConfigProducer getFileDistributionConfigProducer() {
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/VespaModel.java b/config-model/src/main/java/com/yahoo/vespa/model/VespaModel.java
index 93a9600e134..6aa5c92ca17 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/VespaModel.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/VespaModel.java
@@ -19,7 +19,6 @@ import com.yahoo.config.model.ApplicationConfigProducerRoot;
import com.yahoo.config.model.ConfigModelRegistry;
import com.yahoo.config.model.ConfigModelRepo;
import com.yahoo.config.model.NullConfigModelRegistry;
-import com.yahoo.config.model.api.FileDistribution;
import com.yahoo.config.model.api.HostInfo;
import com.yahoo.config.model.api.Model;
import com.yahoo.config.model.api.Provisioned;
@@ -31,9 +30,9 @@ import com.yahoo.config.provision.AllocatedHosts;
import com.yahoo.config.provision.ClusterSpec;
import com.yahoo.container.QrConfig;
import com.yahoo.path.Path;
+import com.yahoo.searchdefinition.LargeRankExpressions;
import com.yahoo.searchdefinition.OnnxModel;
import com.yahoo.searchdefinition.OnnxModels;
-import com.yahoo.searchdefinition.LargeRankExpressions;
import com.yahoo.searchdefinition.RankProfile;
import com.yahoo.searchdefinition.RankProfileRegistry;
import com.yahoo.searchdefinition.RankingConstants;
@@ -271,7 +270,7 @@ public final class VespaModel extends AbstractConfigProducerRoot implements Seri
/** Creates a mutable model with no services instantiated */
public static VespaModel createIncomplete(DeployState deployState) throws IOException, SAXException {
return new VespaModel(new NullConfigModelRegistry(), deployState, false,
- new FileDistributor(deployState.getFileRegistry(), List.of(), deployState.isHosted()));
+ new FileDistributor(deployState.getFileRegistry()));
}
private void validateWrapExceptions() {
@@ -599,11 +598,6 @@ public final class VespaModel extends AbstractConfigProducerRoot implements Seri
}
@Override
- public void distributeFiles(FileDistribution fileDistribution) {
- getFileDistributor().sendDeployedFiles(fileDistribution);
- }
-
- @Override
public AllocatedHosts allocatedHosts() {
return allocatedHosts;
}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminBuilderBase.java b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminBuilderBase.java
index 963d2dde7fc..2bb8b6c9d1d 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminBuilderBase.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminBuilderBase.java
@@ -68,11 +68,11 @@ public abstract class DomAdminBuilderBase extends VespaDomBuilder.DomConfigProdu
}
@Override
- protected Admin doBuild(DeployState deployState, AbstractConfigProducer parent, Element adminElement) {
+ protected Admin doBuild(DeployState deployState, AbstractConfigProducer<?> parent, Element adminElement) {
Monitoring monitoring = getMonitoring(XML.getChild(adminElement,"monitoring"), deployState.isHosted());
Metrics metrics = new MetricsBuilder(applicationType, PredefinedMetricSets.get())
.buildMetrics(XML.getChild(adminElement, "metrics"));
- FileDistributionConfigProducer fileDistributionConfigProducer = getFileDistributionConfigProducer(parent, deployState.isHosted());
+ FileDistributionConfigProducer fileDistributionConfigProducer = getFileDistributionConfigProducer(parent);
Admin admin = new Admin(parent, monitoring, metrics, multitenant, fileDistributionConfigProducer, deployState.isHosted());
admin.setApplicationType(applicationType);
@@ -82,8 +82,8 @@ public abstract class DomAdminBuilderBase extends VespaDomBuilder.DomConfigProdu
return admin;
}
- private FileDistributionConfigProducer getFileDistributionConfigProducer(AbstractConfigProducer parent, boolean isHosted) {
- return new FileDistributionConfigProducer(parent, fileRegistry, configServerSpecs, isHosted);
+ private FileDistributionConfigProducer getFileDistributionConfigProducer(AbstractConfigProducer<?> parent) {
+ return new FileDistributionConfigProducer(parent, fileRegistry);
}
protected abstract void doBuildAdmin(DeployState deployState, Admin admin, Element adminE);
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/filedistribution/FileDistributionConfigProducer.java b/config-model/src/main/java/com/yahoo/vespa/model/filedistribution/FileDistributionConfigProducer.java
index 2c6808b5773..8fa4d796a68 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/filedistribution/FileDistributionConfigProducer.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/filedistribution/FileDistributionConfigProducer.java
@@ -2,12 +2,10 @@
package com.yahoo.vespa.model.filedistribution;
import com.yahoo.config.application.api.FileRegistry;
-import com.yahoo.config.model.api.ConfigServerSpec;
import com.yahoo.config.model.producer.AbstractConfigProducer;
import com.yahoo.vespa.model.Host;
import java.util.IdentityHashMap;
-import java.util.List;
import java.util.Map;
/**
@@ -15,17 +13,16 @@ import java.util.Map;
* <p>
* File distribution config producer, delegates getting config to {@link FileDistributionConfigProvider} (one per host)
*/
-public class FileDistributionConfigProducer extends AbstractConfigProducer {
+public class FileDistributionConfigProducer extends AbstractConfigProducer<AbstractConfigProducer<?>> {
private final Map<Host, FileDistributionConfigProvider> fileDistributionConfigProviders = new IdentityHashMap<>();
private final FileDistributor fileDistributor;
- public FileDistributionConfigProducer(AbstractConfigProducer ancestor, FileRegistry fileRegistry,
- List<ConfigServerSpec> configServerSpec, boolean isHosted) {
- this(ancestor, new FileDistributor(fileRegistry, configServerSpec, isHosted));
+ public FileDistributionConfigProducer(AbstractConfigProducer<?> ancestor, FileRegistry fileRegistry) {
+ this(ancestor, new FileDistributor(fileRegistry));
}
- private FileDistributionConfigProducer(AbstractConfigProducer parent, FileDistributor fileDistributor) {
+ private FileDistributionConfigProducer(AbstractConfigProducer<?> parent, FileDistributor fileDistributor) {
super(parent, "filedistribution");
this.fileDistributor = fileDistributor;
}
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/filedistribution/FileDistributor.java b/config-model/src/main/java/com/yahoo/vespa/model/filedistribution/FileDistributor.java
index d8da911e32f..cf2ff2f5c3b 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/filedistribution/FileDistributor.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/filedistribution/FileDistributor.java
@@ -2,16 +2,12 @@
package com.yahoo.vespa.model.filedistribution;
import com.yahoo.config.FileReference;
-import com.yahoo.config.model.api.ConfigServerSpec;
-import com.yahoo.config.model.api.FileDistribution;
import com.yahoo.config.application.api.FileRegistry;
-import com.yahoo.vespa.model.ConfigProxy;
import com.yahoo.vespa.model.Host;
import java.nio.ByteBuffer;
import java.util.HashSet;
import java.util.LinkedHashMap;
-import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -27,16 +23,12 @@ import java.util.Set;
public class FileDistributor {
private final FileRegistry fileRegistry;
- private final List<ConfigServerSpec> configServerSpecs;
- private final boolean isHosted;
/** A map from file reference to the hosts to which that file reference should be distributed */
private final Map<FileReference, Set<Host>> filesToHosts = new LinkedHashMap<>();
- public FileDistributor(FileRegistry fileRegistry, List<ConfigServerSpec> configServerSpecs, boolean isHosted) {
+ public FileDistributor(FileRegistry fileRegistry) {
this.fileRegistry = fileRegistry;
- this.configServerSpecs = configServerSpecs;
- this.isHosted = isHosted;
}
/**
@@ -102,23 +94,4 @@ public class FileDistributor {
return Set.copyOf(filesToHosts.keySet());
}
- // should only be called during deploy
- public void sendDeployedFiles(FileDistribution dbHandler) {
- String fileSourceHost = fileSourceHost();
-
- // Ask other config servers to download, for redundancy
- configServerSpecs.stream()
- .filter(spec -> !spec.getHostName().equals(fileSourceHost))
- .forEach(spec -> dbHandler.startDownload(spec.getHostName(), spec.getConfigServerPort(), allFilesToSend()));
-
- // Skip starting download for application hosts when on hosted, since this is just a hint and requests for files
- // will fail until the application is activated (this call is done when preparing an application deployment)
- // due to authorization of RPC requests on config servers only considering files belonging to active applications
- if (isHosted) return;
-
- getTargetHosts().stream()
- .filter(host -> ! host.getHostname().equals(fileSourceHost))
- .forEach(host -> dbHandler.startDownload(host.getHostname(), ConfigProxy.BASEPORT, filesToSendToHost(host)));
- }
-
}