diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2021-11-05 17:30:39 +0100 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2021-11-05 20:37:49 +0100 |
commit | f8494afee15a5d9eb58c06ffbc63cec74f81b31c (patch) | |
tree | 0374ed0afb0184858fa99cff38f31c1fb33dbec2 /config-model/src/main/java/com | |
parent | 89d3340928b4d1014aebb3cc8919614fe3b3cf25 (diff) |
Just fetch file references directly from fileregistry as there is no need to assiciate them with services.
Diffstat (limited to 'config-model/src/main/java/com')
18 files changed, 15 insertions, 114 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 6be829b6e49..b29ff1ee58b 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 @@ -66,7 +66,7 @@ public class MockRoot extends AbstractConfigProducerRoot { super(rootConfigId); hostSystem = new HostSystem(this, "hostsystem", deployState.getProvisioner(), deployState.getDeployLogger()); this.deployState = deployState; - fileReferencesRepository = new FileReferencesRepository(); + fileReferencesRepository = new FileReferencesRepository(deployState.getFileRegistry()); } public FileDistributionConfigProducer getFileDistributionConfigProducer() { diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/DistributableResource.java b/config-model/src/main/java/com/yahoo/searchdefinition/DistributableResource.java index 77133d9b03d..245288c283e 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/DistributableResource.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/DistributableResource.java @@ -4,11 +4,8 @@ package com.yahoo.searchdefinition; import com.yahoo.config.FileReference; import com.yahoo.config.application.api.FileRegistry; import com.yahoo.path.Path; -import com.yahoo.vespa.model.AbstractService; -import com.yahoo.vespa.model.utils.FileSender; import java.nio.ByteBuffer; -import java.util.Collection; import java.util.Objects; public class DistributableResource { @@ -57,11 +54,6 @@ public class DistributableResource { this.pathType = PathType.URI; } - /** Initiate sending of this constant to some services over file distribution */ - public void sendTo(Collection<? extends AbstractService> services) { - FileSender.send(fileReference, services); - } - public String getName() { return name; } public String getFileName() { return path; } public Path getFilePath() { return Path.fromString(path); } diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/LargeRankExpressions.java b/config-model/src/main/java/com/yahoo/searchdefinition/LargeRankExpressions.java index c33400fdcc1..3fdea71da2c 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/LargeRankExpressions.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/LargeRankExpressions.java @@ -2,9 +2,7 @@ package com.yahoo.searchdefinition; import com.yahoo.config.application.api.FileRegistry; -import com.yahoo.vespa.model.AbstractService; -import java.util.Collection; import java.util.Collections; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; @@ -37,8 +35,4 @@ public class LargeRankExpressions { return Collections.unmodifiableMap(expressions); } - /** Initiate sending of these constants to some services over file distribution */ - public void sendTo(Collection<? extends AbstractService> services) { - expressions.values().forEach(constant -> constant.sendTo(services)); - } } diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/OnnxModels.java b/config-model/src/main/java/com/yahoo/searchdefinition/OnnxModels.java index e249fe59f14..c9c12100552 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/OnnxModels.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/OnnxModels.java @@ -2,9 +2,7 @@ package com.yahoo.searchdefinition; import com.yahoo.config.application.api.FileRegistry; -import com.yahoo.vespa.model.AbstractService; -import java.util.Collection; import java.util.Collections; import java.util.HashMap; import java.util.Map; @@ -66,9 +64,4 @@ public class OnnxModels { return Collections.unmodifiableMap(allModels); } - /** Initiate sending of these models to some services over file distribution */ - public void sendTo(Collection<? extends AbstractService> services) { - asMap().values().forEach(model -> model.sendTo(services)); - } - } diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/RankingConstants.java b/config-model/src/main/java/com/yahoo/searchdefinition/RankingConstants.java index 1e0eacaea16..5020e9a061c 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/RankingConstants.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/RankingConstants.java @@ -2,9 +2,7 @@ package com.yahoo.searchdefinition; import com.yahoo.config.application.api.FileRegistry; -import com.yahoo.vespa.model.AbstractService; -import java.util.Collection; import java.util.Collections; import java.util.HashMap; import java.util.Map; @@ -77,8 +75,4 @@ public class RankingConstants { return Collections.unmodifiableMap(allConstants); } - /** Initiate sending of these constants to some services over file distribution */ - public void sendTo(Collection<? extends AbstractService> services) { - asMap().values().forEach(constant -> constant.sendTo(services)); - } } diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/Schema.java b/config-model/src/main/java/com/yahoo/searchdefinition/Schema.java index 36d4ba9699e..512d908ce5b 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/Schema.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/Schema.java @@ -21,7 +21,6 @@ import com.yahoo.searchdefinition.document.TemporaryImportedFields; import com.yahoo.searchdefinition.document.annotation.SDAnnotationType; import com.yahoo.vespa.documentmodel.DocumentSummary; import com.yahoo.vespa.documentmodel.SummaryField; -import com.yahoo.vespa.model.AbstractService; import java.io.Reader; import java.util.ArrayList; @@ -219,12 +218,6 @@ public class Schema implements ImmutableSchema { @Override public OnnxModels onnxModels() { return onnxModels; } - public void sendTo(Collection<? extends AbstractService> services) { - rankingConstants.sendTo(services); - largeRankExpressions.sendTo(services); - onnxModels.sendTo(services); - } - public Optional<TemporaryImportedFields> temporaryImportedFields() { return temporaryImportedFields; } diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/derived/RankProfileList.java b/config-model/src/main/java/com/yahoo/searchdefinition/derived/RankProfileList.java index faee6d67dbf..3081637c975 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/derived/RankProfileList.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/derived/RankProfileList.java @@ -16,10 +16,8 @@ import com.yahoo.searchdefinition.Schema; import com.yahoo.vespa.config.search.core.OnnxModelsConfig; import com.yahoo.vespa.config.search.core.RankingConstantsConfig; import com.yahoo.vespa.config.search.core.RankingExpressionsConfig; -import com.yahoo.vespa.model.AbstractService; import java.util.ArrayList; -import java.util.Collection; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; @@ -144,12 +142,6 @@ public class RankProfileList extends Derived implements RankProfilesConfig.Produ return rankProfiles.get(name); } - public void sendTo(Collection<? extends AbstractService> services) { - rankingConstants.sendTo(services); - largeRankExpressions.sendTo(services); - onnxModels.sendTo(services); - } - @Override public String getDerivedName() { return "rank-profiles"; } diff --git a/config-model/src/main/java/com/yahoo/vespa/model/AbstractService.java b/config-model/src/main/java/com/yahoo/vespa/model/AbstractService.java index fa510d15673..73b106ed393 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/AbstractService.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/AbstractService.java @@ -1,7 +1,6 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.vespa.model; -import com.yahoo.config.FileReference; import com.yahoo.config.application.api.DeployLogger; import com.yahoo.config.model.api.PortInfo; import com.yahoo.config.model.api.ServiceInfo; @@ -453,15 +452,6 @@ public abstract class AbstractService extends AbstractConfigProducer<AbstractCon return initialized; } - /** - * Add the given file to the application's file distributor. - * - * @param reference file reference (hash) - */ - public void send(FileReference reference) { - getRoot().fileReferencesRepository().add(reference); - } - /** The service HTTP port for health status */ public int getHealthPort() { return -1;} diff --git a/config-model/src/main/java/com/yahoo/vespa/model/ConfigProducerRoot.java b/config-model/src/main/java/com/yahoo/vespa/model/ConfigProducerRoot.java index 55bcadf4848..8c4b7fa23aa 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/ConfigProducerRoot.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/ConfigProducerRoot.java @@ -4,7 +4,6 @@ package com.yahoo.vespa.model; import com.yahoo.config.ConfigInstance; import com.yahoo.config.model.producer.AbstractConfigProducer; import com.yahoo.vespa.model.admin.Admin; -import com.yahoo.vespa.model.filedistribution.FileReferencesRepository; import java.util.Set; @@ -37,9 +36,7 @@ public interface ConfigProducerRoot extends ConfigProducer { * @param configId The config id * @return A config instance of the given type */ - public <CONFIGTYPE extends ConfigInstance> CONFIGTYPE getConfig(Class<CONFIGTYPE> clazz, String configId); - - FileReferencesRepository fileReferencesRepository(); + <CONFIGTYPE extends ConfigInstance> CONFIGTYPE getConfig(Class<CONFIGTYPE> clazz, String configId); Admin getAdmin(); 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 362b3f3a75c..d6c66a635d4 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 @@ -131,7 +131,7 @@ public final class VespaModel extends AbstractConfigProducerRoot implements Seri /** The validation overrides of this. This is never null. */ private final ValidationOverrides validationOverrides; - private final FileReferencesRepository fileReferencesRepository = new FileReferencesRepository(); + private final FileReferencesRepository fileReferencesRepository; private final Provisioned provisioned; @@ -171,6 +171,7 @@ public final class VespaModel extends AbstractConfigProducerRoot implements Seri throws IOException, SAXException { super("vespamodel"); version = deployState.getVespaVersion(); + fileReferencesRepository = new FileReferencesRepository(deployState.getFileRegistry()); rankingConstants = new RankingConstants(deployState.getFileRegistry(), Optional.empty()); validationOverrides = deployState.validationOverrides(); applicationPackage = deployState.getApplicationPackage(); @@ -384,9 +385,6 @@ public final class VespaModel extends AbstractConfigProducerRoot implements Seri .collect(Collectors.toCollection(LinkedHashSet::new)); } - @Override - public FileReferencesRepository fileReferencesRepository() { return fileReferencesRepository; } - public Set<FileReference> fileReferences() { return fileReferencesRepository.allFileReferences(); } /** Returns this models Vespa instance */ 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 c9d41b7dc2d..c3897f49c44 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 @@ -114,15 +114,12 @@ public final class ApplicationContainerCluster extends ContainerCluster<Applicat @Override protected void doPrepare(DeployState deployState) { addAndSendApplicationBundles(deployState); - if (modelEvaluation != null) - modelEvaluation.prepare(containers); sendUserConfiguredFiles(deployState); } private void addAndSendApplicationBundles(DeployState deployState) { for (ComponentInfo component : deployState.getApplicationPackage().getComponentsInfo(deployState.getVespaVersion())) { FileReference reference = deployState.getFileRegistry().addFile(component.getPathRelativeToAppDir()); - FileSender.send(reference, containers); applicationBundles.add(reference); } } @@ -166,7 +163,7 @@ public final class ApplicationContainerCluster extends ContainerCluster<Applicat return servletGroup.getComponentMap(); } - public final void addServlet(Servlet servlet) { + public void addServlet(Servlet servlet) { servletGroup.addComponent(servlet.getGlobalComponentId(), servlet); } @@ -282,7 +279,7 @@ public final class ApplicationContainerCluster extends ContainerCluster<Applicat this.mbusParams = mbusParams; } - public final void setMessageBusEnabled(boolean messageBusEnabled) { this.messageBusEnabled = messageBusEnabled; } + public void setMessageBusEnabled(boolean messageBusEnabled) { this.messageBusEnabled = messageBusEnabled; } protected boolean messageBusEnabled() { return messageBusEnabled; } diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/ContainerModelEvaluation.java b/config-model/src/main/java/com/yahoo/vespa/model/container/ContainerModelEvaluation.java index b7d3a726aff..40df899c94d 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/container/ContainerModelEvaluation.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/container/ContainerModelEvaluation.java @@ -12,7 +12,6 @@ import com.yahoo.vespa.model.container.component.Handler; import com.yahoo.vespa.model.container.component.SystemBindingPattern; import java.nio.file.Path; -import java.util.List; import java.util.Objects; /** @@ -45,10 +44,6 @@ public class ContainerModelEvaluation implements cluster.addComponent(ContainerModelEvaluation.getHandler()); } - public void prepare(List<ApplicationContainer> containers) { - rankProfileList.sendTo(containers); - } - @Override public void getConfig(RankProfilesConfig.Builder builder) { rankProfileList.getConfig(builder); diff --git a/config-model/src/main/java/com/yahoo/vespa/model/content/Content.java b/config-model/src/main/java/com/yahoo/vespa/model/content/Content.java index 75043041c0f..533364d80c3 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/content/Content.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/content/Content.java @@ -179,7 +179,6 @@ public class Content extends ConfigModel { s.setVespaMallocDebugStackTrace(cluster.getRootGroup().getVespaMallocDebugStackTrace().get()); } } - cluster.prepare(); } private void setCpuSocketAffinity() { diff --git a/config-model/src/main/java/com/yahoo/vespa/model/content/ContentSearchCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/content/ContentSearchCluster.java index 917b1d42146..b8de1845834 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/content/ContentSearchCluster.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/content/ContentSearchCluster.java @@ -74,10 +74,6 @@ public class ContentSearchCluster extends AbstractConfigProducer<SearchCluster> /** Whether the nodes of this cluster also hosts a container cluster in a hosted system */ private final boolean combined; - public void prepare() { - clusters.values().forEach(cluster -> cluster.prepareToDistributeFiles(getSearchNodes())); - } - public static class Builder extends VespaDomBuilder.DomConfigProducerBuilder<ContentSearchCluster> { private final Map<String, NewDocumentType> documentDefinitions; diff --git a/config-model/src/main/java/com/yahoo/vespa/model/content/cluster/ContentCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/content/cluster/ContentCluster.java index 1f65d239d18..0c0b2b80d79 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/content/cluster/ContentCluster.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/content/cluster/ContentCluster.java @@ -408,10 +408,6 @@ public class ContentCluster extends AbstractConfigProducer<AbstractConfigProduce public ClusterSpec.Id id() { return ClusterSpec.Id.from(clusterId); } - public void prepare() { - search.prepare(); - } - public DistributionMode getDistributionMode() { if (distributionMode != null) return distributionMode; return getPersistence().getDefaultDistributionMode(); diff --git a/config-model/src/main/java/com/yahoo/vespa/model/filedistribution/FileReferencesRepository.java b/config-model/src/main/java/com/yahoo/vespa/model/filedistribution/FileReferencesRepository.java index b2c0538e77b..ac5c456a7b1 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/filedistribution/FileReferencesRepository.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/filedistribution/FileReferencesRepository.java @@ -2,9 +2,11 @@ package com.yahoo.vespa.model.filedistribution; import com.yahoo.config.FileReference; +import com.yahoo.config.application.api.FileRegistry; import java.util.LinkedHashSet; import java.util.Set; +import java.util.stream.Collectors; /** * Keeps track of what files to send with file distribution @@ -14,13 +16,13 @@ import java.util.Set; */ public class FileReferencesRepository { - /** A set of file references that should be distributed */ - private final Set<FileReference> fileReferences = new LinkedHashSet<>(); + private final FileRegistry fileRegistry; + public FileReferencesRepository(FileRegistry fileRegistry) { + this.fileRegistry = fileRegistry; + } - public FileReferencesRepository() { } - - public void add(FileReference reference) { fileReferences.add(reference); } - - public Set<FileReference> allFileReferences() { return Set.copyOf(fileReferences); } + public Set<FileReference> allFileReferences() { + return fileRegistry.export().stream().map(e -> e.reference).collect(Collectors.toUnmodifiableSet()); + } } diff --git a/config-model/src/main/java/com/yahoo/vespa/model/search/AbstractSearchCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/search/AbstractSearchCluster.java index 82e8ecec543..19b1f39c87d 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/search/AbstractSearchCluster.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/search/AbstractSearchCluster.java @@ -37,12 +37,6 @@ public abstract class AbstractSearchCluster extends AbstractConfigProducer<Abstr this.index = index; } - public void prepareToDistributeFiles(List<SearchNode> backends) { - for (SchemaSpec sds : localSDS) { - sds.getSearchDefinition().getSearch().sendTo(backends); - } - } - public void addDocumentNames(NamedSchema searchDefinition) { String dName = searchDefinition.getSearch().getDocument().getDocumentName().getName(); documentNames.add(dName); diff --git a/config-model/src/main/java/com/yahoo/vespa/model/utils/FileSender.java b/config-model/src/main/java/com/yahoo/vespa/model/utils/FileSender.java index f683db48e97..ad10e15930b 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/utils/FileSender.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/utils/FileSender.java @@ -36,25 +36,6 @@ public class FileSender implements Serializable { } /** - * Send the given file to all given services. - * - * @param fileReference The file reference to send. - * @param services The services to send the file to. - * @throws IllegalStateException if services is empty. - */ - public static void send(FileReference fileReference, Collection<? extends AbstractService> services) { - if (services.isEmpty()) { - throw new IllegalStateException("No service instances. Probably a standalone cluster setting up <nodes> " + - "using 'count' instead of <node> tags."); - } - - for (AbstractService service : services) { - // The same reference will be returned from each call. - service.send(fileReference); - } - } - - /** * Sends all user configured files for a producer to all given services. */ public <PRODUCER extends AbstractConfigProducer<?>> void sendUserConfiguredFiles(PRODUCER producer) { @@ -149,9 +130,7 @@ public class FileSender implements Serializable { String path = builder.getValue(); FileReference reference = sentFiles.get(path); if (reference == null) { - reference = fileRegistry.addFile(path); - send(reference, services); sentFiles.put(path, reference); } builder.setValue(reference.value()); |