summaryrefslogtreecommitdiffstats
path: root/config-model/src/test/java/com/yahoo/config
diff options
context:
space:
mode:
authorGeir Storli <geirst@yahoo-inc.com>2017-05-03 09:57:52 +0200
committerGeir Storli <geirst@yahoo-inc.com>2017-05-03 09:57:52 +0200
commita8214f4f566a4e8b172334428734bd14c95b7d3b (patch)
tree8f52b6e9a557739e11550413d9a1b32c9b4bb063 /config-model/src/test/java/com/yahoo/config
parent3170e8e7bf512240ea524716498c38e51d668743 (diff)
Ensure that explicit proton tuning have precedence over default node flavor tuning.
Diffstat (limited to 'config-model/src/test/java/com/yahoo/config')
-rw-r--r--config-model/src/test/java/com/yahoo/config/model/provision/ModelProvisioningTest.java62
1 files changed, 57 insertions, 5 deletions
diff --git a/config-model/src/test/java/com/yahoo/config/model/provision/ModelProvisioningTest.java b/config-model/src/test/java/com/yahoo/config/model/provision/ModelProvisioningTest.java
index ec10c84a335..09d2153a30f 100644
--- a/config-model/src/test/java/com/yahoo/config/model/provision/ModelProvisioningTest.java
+++ b/config-model/src/test/java/com/yahoo/config/model/provision/ModelProvisioningTest.java
@@ -1443,10 +1443,8 @@ public class ModelProvisioningTest {
}
private static Flavor createFlavorFromDiskSetting(String name, boolean fastDisk) {
- FlavorsConfig.Flavor.Builder builder = new FlavorsConfig.Flavor.Builder();
- builder.name(name);
- builder.fastDisk(fastDisk);
- return new Flavor(new FlavorsConfig.Flavor(builder));
+ return new Flavor(new FlavorsConfig.Flavor(new FlavorsConfig.Flavor.Builder().
+ name(name).fastDisk(fastDisk)));
}
private static ProtonConfig getProtonConfig(ContentSearchCluster cluster, int searchNodeIdx) {
@@ -1456,5 +1454,59 @@ public class ModelProvisioningTest {
searchNodes.get(searchNodeIdx).getConfig(builder);
return new ProtonConfig(builder);
}
-
+
+ @Test
+ public void require_that_config_override_and_explicit_proton_tuning_have_precedence_over_default_node_flavor_tuning() {
+ String services = joinLines("<?xml version='1.0' encoding='utf-8' ?>",
+ "<services>",
+ " <content version='1.0' id='test'>",
+ " <config name='vespa.config.search.core.proton'>",
+ " <flush><memory><maxtlssize>2000</maxtlssize></memory></flush>",
+ " </config>",
+ " <documents>",
+ " <document type='type1' mode='index'/>",
+ " </documents>",
+ " <nodes count='1' flavor='content-test-flavor'/>",
+ " <engine>",
+ " <proton>",
+ " <tuning>",
+ " <searchnode>",
+ " <flushstrategy>",
+ " <native>",
+ " <total>",
+ " <maxmemorygain>1000</maxmemorygain>",
+ " </total>",
+ " </native>",
+ " </flushstrategy>",
+ " </searchnode>",
+ " </tuning>",
+ " </proton>",
+ " </engine>",
+ " </content>",
+ "</services>");
+
+ VespaModelTester tester = new VespaModelTester();
+ tester.addHosts("default", 1);
+ tester.addHosts(createFlavorFromMemoryAndDisk("content-test-flavor", 128, 100), 1);
+ VespaModel model = tester.createModel(services, true, 0);
+ ContentSearchCluster cluster = model.getContentClusters().get("test").getSearch();
+ ProtonConfig cfg = getProtonConfig(model, cluster.getSearchNodes().get(0).getConfigId());
+ assertEquals(2000, cfg.flush().memory().maxtlssize()); // from config override
+ assertEquals(1000, cfg.flush().memory().maxmemory()); // from explicit tuning
+ assertEquals((long) 16 * GB, cfg.flush().memory().each().maxmemory()); // from default node flavor tuning
+ }
+
+ private static long GB = 1024 * 1024 * 1024;
+
+ private static Flavor createFlavorFromMemoryAndDisk(String name, int memoryGb, int diskGb) {
+ return new Flavor(new FlavorsConfig.Flavor(new FlavorsConfig.Flavor.Builder().
+ name(name).minMainMemoryAvailableGb(memoryGb).minDiskAvailableGb(diskGb)));
+ }
+
+ private static ProtonConfig getProtonConfig(VespaModel model, String configId) {
+ ProtonConfig.Builder builder = new ProtonConfig.Builder();
+ model.getConfig(builder, configId);
+ return new ProtonConfig(builder);
+ }
+
}