diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2020-10-28 17:38:04 +0000 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2020-10-28 17:38:04 +0000 |
commit | da3bcaee0309daad4ed9ab6f7f2bd56986302e35 (patch) | |
tree | 25e0881dbd6a4559bd4b2862f5008a13604d8db3 | |
parent | 02785bc255415bb26aaf57be10b4261e2ce65bc8 (diff) |
GC unused content bucket btree flag
8 files changed, 9 insertions, 50 deletions
diff --git a/config-model-api/src/main/java/com/yahoo/config/model/api/ModelContext.java b/config-model-api/src/main/java/com/yahoo/config/model/api/ModelContext.java index fa4fee417fd..cffa17e7c9f 100644 --- a/config-model-api/src/main/java/com/yahoo/config/model/api/ModelContext.java +++ b/config-model-api/src/main/java/com/yahoo/config/model/api/ModelContext.java @@ -88,7 +88,8 @@ public interface ModelContext { String tlsCompressionType(); double visibilityDelay(); - boolean useContentNodeBtreeDb(); + // TODO(balder) Last used on 7.306 + default boolean useContentNodeBtreeDb() { return true; } boolean useThreePhaseUpdates(); diff --git a/config-model/src/main/java/com/yahoo/config/model/deploy/TestProperties.java b/config-model/src/main/java/com/yahoo/config/model/deploy/TestProperties.java index 7628af85b52..e1e2652b987 100644 --- a/config-model/src/main/java/com/yahoo/config/model/deploy/TestProperties.java +++ b/config-model/src/main/java/com/yahoo/config/model/deploy/TestProperties.java @@ -35,7 +35,6 @@ public class TestProperties implements ModelContext.Properties { private Zone zone; private final Set<ContainerEndpoint> endpoints = Collections.emptySet(); private boolean useDedicatedNodeForLogserver = false; - private boolean useContentNodeBtreeDb = false; private boolean useThreePhaseUpdates = false; private boolean useDirectStorageApiRpc = false; private boolean useFastValueTensorImplementation = false; @@ -72,7 +71,6 @@ public class TestProperties implements ModelContext.Properties { @Override public boolean useDedicatedNodeForLogserver() { return useDedicatedNodeForLogserver; } @Override public Optional<EndpointCertificateSecrets> endpointCertificateSecrets() { return endpointCertificateSecrets; } @Override public double defaultTermwiseLimit() { return defaultTermwiseLimit; } - @Override public boolean useContentNodeBtreeDb() { return useContentNodeBtreeDb; } @Override public boolean useThreePhaseUpdates() { return useThreePhaseUpdates; } @Override public boolean useDirectStorageApiRpc() { return useDirectStorageApiRpc; } @Override public boolean useFastValueTensorImplementation() { return useFastValueTensorImplementation; } @@ -111,11 +109,6 @@ public class TestProperties implements ModelContext.Properties { return this; } - public TestProperties setUseContentNodeBtreeDB(boolean useBtreeDb) { - useContentNodeBtreeDb = useBtreeDb; - return this; - } - public TestProperties setUseThreePhaseUpdates(boolean useThreePhaseUpdates) { this.useThreePhaseUpdates = useThreePhaseUpdates; return this; diff --git a/config-model/src/main/java/com/yahoo/vespa/model/content/storagecluster/StorServerProducer.java b/config-model/src/main/java/com/yahoo/vespa/model/content/storagecluster/StorServerProducer.java index 9e4c9bde1e4..cb8221e3ad6 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/content/storagecluster/StorServerProducer.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/content/storagecluster/StorServerProducer.java @@ -10,36 +10,33 @@ import com.yahoo.vespa.model.builder.xml.dom.ModelElement; */ public class StorServerProducer implements StorServerConfig.Producer { public static class Builder { - StorServerProducer build(ModelElement element, boolean useBtreeDatabase) { + StorServerProducer build(ModelElement element) { ModelElement tuning = element.child("tuning"); if (tuning == null) { - return new StorServerProducer(ContentCluster.getClusterId(element), null, null, useBtreeDatabase); + return new StorServerProducer(ContentCluster.getClusterId(element), null, null); } ModelElement merges = tuning.child("merges"); if (merges == null) { - return new StorServerProducer(ContentCluster.getClusterId(element), null, null, useBtreeDatabase); + return new StorServerProducer(ContentCluster.getClusterId(element), null, null); } return new StorServerProducer(ContentCluster.getClusterId(element), merges.integerAttribute("max-per-node"), - merges.integerAttribute("max-queue-size"), - useBtreeDatabase); + merges.integerAttribute("max-queue-size")); } } private final String clusterName; private final Integer maxMergesPerNode; private final Integer queueSize; - private final boolean useBtreeDatabase; public StorServerProducer(String clusterName, Integer maxMergesPerNode, - Integer queueSize, boolean useBtreeDatabase) { + Integer queueSize) { this.clusterName = clusterName; this.maxMergesPerNode = maxMergesPerNode; this.queueSize = queueSize; - this.useBtreeDatabase = useBtreeDatabase; } @Override @@ -56,6 +53,5 @@ public class StorServerProducer implements StorServerConfig.Producer { if (queueSize != null) { builder.max_merge_queue_size(queueSize); } - builder.use_content_node_btree_bucket_db(useBtreeDatabase); } } diff --git a/config-model/src/main/java/com/yahoo/vespa/model/content/storagecluster/StorageCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/content/storagecluster/StorageCluster.java index bacb22b0b89..b9fd26c45ff 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/content/storagecluster/StorageCluster.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/content/storagecluster/StorageCluster.java @@ -33,13 +33,12 @@ public class StorageCluster extends AbstractConfigProducer<StorageNode> protected StorageCluster doBuild(DeployState deployState, AbstractConfigProducer ancestor, Element producerSpec) { final ModelElement clusterElem = new ModelElement(producerSpec); final ContentCluster cluster = (ContentCluster)ancestor; - boolean useContentNodeBtreeDb = deployState.getProperties().useContentNodeBtreeDb(); return new StorageCluster(ancestor, ContentCluster.getClusterId(clusterElem), new FileStorProducer.Builder().build(deployState.getProperties(), cluster, clusterElem), new IntegrityCheckerProducer.Builder().build(cluster, clusterElem), - new StorServerProducer.Builder().build(clusterElem, useContentNodeBtreeDb), + new StorServerProducer.Builder().build(clusterElem), new StorVisitorProducer.Builder().build(clusterElem), new PersistenceProducer.Builder().build(clusterElem)); } diff --git a/config-model/src/test/java/com/yahoo/vespa/model/content/ContentClusterTest.java b/config-model/src/test/java/com/yahoo/vespa/model/content/ContentClusterTest.java index 2ec82697f23..92e9ca43193 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/content/ContentClusterTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/content/ContentClusterTest.java @@ -950,22 +950,6 @@ public class ContentClusterTest extends ContentBaseTest { verifyTopKProbabilityPropertiesControl(); } - private boolean resolveContentNodeBtreeDbConfigWithFeatureFlag(boolean flagEnabledBtreeDb) { - VespaModel model = createEnd2EndOneNode(new TestProperties().setUseContentNodeBtreeDB(flagEnabledBtreeDb)); - - ContentCluster cc = model.getContentClusters().get("storage"); - var builder = new StorServerConfig.Builder(); - cc.getStorageNodes().getConfig(builder); - - return (new StorServerConfig(builder)).use_content_node_btree_bucket_db(); - } - - @Test - public void default_content_node_btree_usage_controlled_by_properties() { - assertFalse(resolveContentNodeBtreeDbConfigWithFeatureFlag(false)); - assertTrue(resolveContentNodeBtreeDbConfigWithFeatureFlag(true)); - } - private boolean resolveThreePhaseUpdateConfigWithFeatureFlag(boolean flagEnableThreePhase) { VespaModel model = createEnd2EndOneNode(new TestProperties().setUseThreePhaseUpdates(flagEnableThreePhase)); diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/deploy/ModelContextImpl.java b/configserver/src/main/java/com/yahoo/vespa/config/server/deploy/ModelContextImpl.java index 95b9ac433cf..fe67db4cfd7 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/deploy/ModelContextImpl.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/deploy/ModelContextImpl.java @@ -147,7 +147,6 @@ public class ModelContextImpl implements ModelContext { private final Set<ContainerEndpoint> endpoints; private final boolean isBootstrap; private final boolean isFirstTimeDeployment; - private final boolean useContentNodeBtreeDb; private final boolean useThreePhaseUpdates; private final boolean useDirectStorageApiRpc; private final boolean useFastValueTensorImplementation; @@ -200,8 +199,6 @@ public class ModelContextImpl implements ModelContext { this.endpointCertificateSecrets = endpointCertificateSecrets; defaultTermwiseLimit = Flags.DEFAULT_TERM_WISE_LIMIT.bindTo(flagSource) .with(FetchVector.Dimension.APPLICATION_ID, applicationId.serializedForm()).value(); - useContentNodeBtreeDb = Flags.USE_CONTENT_NODE_BTREE_DB.bindTo(flagSource) - .with(FetchVector.Dimension.APPLICATION_ID, applicationId.serializedForm()).value(); useThreePhaseUpdates = Flags.USE_THREE_PHASE_UPDATES.bindTo(flagSource) .with(FetchVector.Dimension.APPLICATION_ID, applicationId.serializedForm()).value(); useDirectStorageApiRpc = Flags.USE_DIRECT_STORAGE_API_RPC.bindTo(flagSource) @@ -287,11 +284,6 @@ public class ModelContextImpl implements ModelContext { public double defaultTermwiseLimit() { return defaultTermwiseLimit; } @Override - public boolean useContentNodeBtreeDb() { - return useContentNodeBtreeDb; - } - - @Override public boolean useThreePhaseUpdates() { return useThreePhaseUpdates; } diff --git a/flags/src/main/java/com/yahoo/vespa/flags/Flags.java b/flags/src/main/java/com/yahoo/vespa/flags/Flags.java index 1d4cd21975d..51cdba196a8 100644 --- a/flags/src/main/java/com/yahoo/vespa/flags/Flags.java +++ b/flags/src/main/java/com/yahoo/vespa/flags/Flags.java @@ -149,12 +149,6 @@ public class Flags { "Takes effect at redeployment", ZONE_ID, APPLICATION_ID); - public static final UnboundBooleanFlag USE_CONTENT_NODE_BTREE_DB = defineFeatureFlag( - "use-content-node-btree-db", true, - "Whether to use the new B-tree bucket database on the content node.", - "Takes effect at restart of content node process", - ZONE_ID, APPLICATION_ID); - public static final UnboundBooleanFlag USE_THREE_PHASE_UPDATES = defineFeatureFlag( "use-three-phase-updates", false, "Whether to enable the use of three-phase updates when bucket replicas are out of sync.", diff --git a/storage/src/vespa/storage/config/stor-server.def b/storage/src/vespa/storage/config/stor-server.def index e1446aa8ed1..cd940079a70 100644 --- a/storage/src/vespa/storage/config/stor-server.def +++ b/storage/src/vespa/storage/config/stor-server.def @@ -87,4 +87,4 @@ simulated_bucket_request_latency_msec int default=0 ## If set, content node processes will use a B-tree backed bucket database implementation ## instead of the legacy Judy-based implementation. -use_content_node_btree_bucket_db bool default=false restart +use_content_node_btree_bucket_db bool default=true restart |