diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2021-04-27 17:11:52 +0200 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2021-04-27 17:11:52 +0200 |
commit | 9b0f395b86a18d8dd363f025a528c97477b01fe5 (patch) | |
tree | 4de77634fa900599549b2cbfbd83da74bb2d7d9c /config-model/src/main | |
parent | d9bec5f3fb608b5cd914196c04c041f7ca2ff8fb (diff) |
Disable fsync on remote storage.
Diffstat (limited to 'config-model/src/main')
3 files changed, 26 insertions, 21 deletions
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 675cbb494dd..1dd5074aedb 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 @@ -44,7 +44,7 @@ import static java.util.stream.Collectors.toList; public class ContentSearchCluster extends AbstractConfigProducer<SearchCluster> implements ProtonConfig.Producer, DispatchConfig.Producer { private final boolean flushOnShutdown; - private final boolean syncTransactionLog; + private final Boolean syncTransactionLog; /** If this is set up for streaming search, it is modelled as one search cluster per search definition */ private final Map<String, AbstractSearchCluster> clusters = new TreeMap<>(); @@ -106,7 +106,7 @@ public class ContentSearchCluster extends AbstractConfigProducer<SearchCluster> documentDefinitions, globallyDistributedDocuments, getFlushOnShutdown(flushOnShutdownElem), - getSyncTransactionLog(syncTransactionLog, deployState), + syncTransactionLog, combined); ModelElement tuning = clusterElem.childByPath("engine.proton.tuning"); @@ -126,12 +126,6 @@ public class ContentSearchCluster extends AbstractConfigProducer<SearchCluster> } return true; } - private boolean getSyncTransactionLog(Boolean syncTransactionLogElem, DeployState deployState) { - if (syncTransactionLogElem != null) { - return syncTransactionLogElem; - } - return true; - } private Double getQueryTimeout(ModelElement clusterElem) { return clusterElem.childAsDouble("engine.proton.query-timeout"); @@ -206,7 +200,7 @@ public class ContentSearchCluster extends AbstractConfigProducer<SearchCluster> Map<String, NewDocumentType> documentDefinitions, Set<NewDocumentType> globallyDistributedDocuments, boolean flushOnShutdown, - boolean syncTransactionLog, + Boolean syncTransactionLog, boolean combined) { super(parent, "search"); diff --git a/config-model/src/main/java/com/yahoo/vespa/model/search/SearchNode.java b/config-model/src/main/java/com/yahoo/vespa/model/search/SearchNode.java index 9f129f65281..ab8c36ae99d 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/search/SearchNode.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/search/SearchNode.java @@ -2,9 +2,9 @@ package com.yahoo.vespa.model.search; import com.yahoo.cloud.config.filedistribution.FiledistributorrpcConfig; -import com.yahoo.config.model.api.ModelContext; import com.yahoo.config.model.deploy.DeployState; import com.yahoo.config.model.producer.AbstractConfigProducer; +import com.yahoo.config.provision.NodeResources; import com.yahoo.metrics.MetricsmanagerConfig; import com.yahoo.searchlib.TranslogserverConfig; import com.yahoo.vespa.config.content.LoadTypeConfig; @@ -213,6 +213,12 @@ public class SearchNode extends AbstractService implements @Override public void getConfig(TranslogserverConfig.Builder builder) { + Optional<NodeResources> nodeResources = getSpecifiedNodeResources(); + if (nodeResources.isPresent()) { + if (nodeResources.get().storageType() == NodeResources.StorageType.remote) { + builder.usefsync(false); + } + } tls.getConfig(builder); } @@ -272,8 +278,9 @@ public class SearchNode extends AbstractService implements // to make sure the node failer has done its work builder.pruneremoveddocumentsage(4 * 24 * 3600 + 3600 + 60); } - if (getHostResource() != null && ! getHostResource().realResources().isUnspecified()) { - var nodeResourcesTuning = new NodeResourcesTuning(getHostResource().realResources(), + Optional<NodeResources> nodeResources = getSpecifiedNodeResources(); + if (nodeResources.isPresent()) { + var nodeResourcesTuning = new NodeResourcesTuning(nodeResources.get(), tuning.map(Tuning::threadsPerSearch).orElse(1), combined); nodeResourcesTuning.getConfig(builder); @@ -283,6 +290,10 @@ public class SearchNode extends AbstractService implements } } + private Optional<NodeResources> getSpecifiedNodeResources() { + return (getHostResource() != null) ? getHostResource().realResources().asOptional() : Optional.empty(); + } + @Override public HashMap<String, String> getDefaultMetricDimensions() { HashMap<String, String> dimensions = new HashMap<>(); diff --git a/config-model/src/main/java/com/yahoo/vespa/model/search/TransactionLogServer.java b/config-model/src/main/java/com/yahoo/vespa/model/search/TransactionLogServer.java index c24fa6396e7..ed12a161805 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/search/TransactionLogServer.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/search/TransactionLogServer.java @@ -25,8 +25,8 @@ public class TransactionLogServer extends AbstractService { } } - private final boolean useFsync; - public TransactionLogServer(AbstractConfigProducer searchNode, String clusterName, boolean useFsync) { + private final Boolean useFsync; + public TransactionLogServer(AbstractConfigProducer searchNode, String clusterName, Boolean useFsync) { super(searchNode, "transactionlogserver"); portsMeta.on(0).tag("tls"); this.useFsync = useFsync; @@ -37,8 +37,8 @@ public class TransactionLogServer extends AbstractService { public static class Builder extends VespaDomBuilder.DomConfigProducerBuilder<TransactionLogServer> { private final String clusterName; - private final boolean useFsync; - public Builder(String clusterName, boolean useFsync) { + private final Boolean useFsync; + public Builder(String clusterName, Boolean useFsync) { this.clusterName = clusterName; this.useFsync = useFsync; } @@ -79,11 +79,11 @@ public class TransactionLogServer extends AbstractService { } public void getConfig(TranslogserverConfig.Builder builder) { - builder - .listenport(getTlsPort()) - .basedir(getTlsDir()) - .usefsync(useFsync); - + builder.listenport(getTlsPort()) + .basedir(getTlsDir()); + if (useFsync != null) { + builder.usefsync(useFsync); + } } } |