diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2019-01-28 20:19:28 +0100 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2019-01-28 20:19:28 +0100 |
commit | 6647262e65aac73aa9f383abd8763974f70bd220 (patch) | |
tree | 4d856315a12bbd229d753b294b0b5ef6d6cafa18 /config-model | |
parent | 877cc99a230287d18f0e966617e9fa445b5ee01e (diff) |
Add support for controlling warmup in tuning section.
Diffstat (limited to 'config-model')
4 files changed, 40 insertions, 2 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomSearchTuningBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomSearchTuningBuilder.java index 067d653ea40..7adb012f6bd 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomSearchTuningBuilder.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomSearchTuningBuilder.java @@ -168,6 +168,16 @@ public class DomSearchTuningBuilder extends VespaDomBuilder.DomConfigProducerBui io.search = Tuning.SearchNode.IoType.fromString(asString(e2)); } } + } else if (equals("warmup", e)) { + sn.index.warmup = new Tuning.SearchNode.Index.Warmup(); + Tuning.SearchNode.Index.Warmup warmup = sn.index.warmup; + for (Element e2 : XML.getChildren(e)) { + if (equals("time", e2)) { + warmup.time = Double.valueOf(asString(e2)); + } else if (equals("unpack", e2)) { + warmup.unpack = Boolean.valueOf(asString(e2)); + } + } } } } diff --git a/config-model/src/main/java/com/yahoo/vespa/model/search/Tuning.java b/config-model/src/main/java/com/yahoo/vespa/model/search/Tuning.java index a87a3d3e312..60ec1866047 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/search/Tuning.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/search/Tuning.java @@ -157,14 +157,28 @@ public class Tuning extends AbstractConfigProducer implements PartitionsConfig.P builder.indexing.read.io(ProtonConfig.Indexing.Read.Io.Enum.valueOf(read.name)); } } + } + public static class Warmup implements ProtonConfig.Producer { + public double time = 0; + public boolean unpack = false; + + @Override + public void getConfig(ProtonConfig.Builder builder) { + if (time > 0) { + builder.index.warmup.time(time); + builder.index.warmup.unpack(unpack); + } + } } public Io io; + public Warmup warmup; @Override public void getConfig(ProtonConfig.Builder builder) { if (io != null) io.getConfig(builder); + if (warmup != null) warmup.getConfig(builder); } } diff --git a/config-model/src/main/resources/schema/content.rnc b/config-model/src/main/resources/schema/content.rnc index ae2af6618d7..38a50699e76 100644 --- a/config-model/src/main/resources/schema/content.rnc +++ b/config-model/src/main/resources/schema/content.rnc @@ -318,7 +318,11 @@ Tuning = element tuning { element write { TuningIoOptionsLight }? & element read { TuningIoOptionsLight }? & element search { TuningIoOptionsFull }? - } + }? & + element warmup { + element time { xsd:double { minInclusive = "0.0" } }? & + element unpack { xsd:boolean }? + }? }? & element attribute { element io { diff --git a/config-model/src/test/java/com/yahoo/vespa/model/builder/xml/dom/DomSearchTuningBuilderTest.java b/config-model/src/test/java/com/yahoo/vespa/model/builder/xml/dom/DomSearchTuningBuilderTest.java index aa52a2b586e..0fe79007a51 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/builder/xml/dom/DomSearchTuningBuilderTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/builder/xml/dom/DomSearchTuningBuilderTest.java @@ -17,6 +17,7 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertThat; +import static org.junit.Assert.assertTrue; /** * @author geirst @@ -145,13 +146,22 @@ public class DomSearchTuningBuilderTest extends DomBuilderTest { "<write>directio</write>", "<read>normal</read>", "<search>mmap</search>", - "</io>", "</index>")); + "</io>", + "<warmup>" + + "<time>178</time>", + "<unpack>true</unpack>", + "</warmup>", + "</index>")); assertEquals(Tuning.SearchNode.IoType.DIRECTIO, t.searchNode.index.io.write); assertEquals(Tuning.SearchNode.IoType.NORMAL, t.searchNode.index.io.read); assertEquals(Tuning.SearchNode.IoType.MMAP, t.searchNode.index.io.search); + assertEquals(178, t.searchNode.index.warmup.time, DELTA); + assertTrue(t.searchNode.index.warmup.unpack); String cfg = getProtonCfg(t); assertThat(cfg, containsString("indexing.write.io DIRECTIO")); assertThat(cfg, containsString("indexing.read.io NORMAL")); + assertThat(cfg, containsString("index.warmup.time 178")); + assertThat(cfg, containsString("index.warmup.unpack true")); } @Test |