summaryrefslogtreecommitdiffstats
path: root/config-model
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2019-01-28 20:19:28 +0100
committerHenning Baldersheim <balder@yahoo-inc.com>2019-01-28 20:19:28 +0100
commit6647262e65aac73aa9f383abd8763974f70bd220 (patch)
tree4d856315a12bbd229d753b294b0b5ef6d6cafa18 /config-model
parent877cc99a230287d18f0e966617e9fa445b5ee01e (diff)
Add support for controlling warmup in tuning section.
Diffstat (limited to 'config-model')
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomSearchTuningBuilder.java10
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/search/Tuning.java14
-rw-r--r--config-model/src/main/resources/schema/content.rnc6
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/builder/xml/dom/DomSearchTuningBuilderTest.java12
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