aboutsummaryrefslogtreecommitdiffstats
path: root/config-model
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2019-01-28 22:21:10 +0100
committerHenning Baldersheim <balder@yahoo-inc.com>2019-01-28 22:21:10 +0100
commit4d1e2dd83e2f779043cc06e7b5a7d985c7107397 (patch)
tree8d2411728a15d8528360316a754152d655d6fa78 /config-model
parentd0bc6d5744caac40632cf55b0fdaba0d2fdd9deb (diff)
Test removed-db.prune tuning.
Diffstat (limited to 'config-model')
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomSearchTuningBuilder.java49
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/search/Tuning.java22
-rw-r--r--config-model/src/main/resources/schema/content.rnc4
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/builder/xml/dom/DomSearchTuningBuilderTest.java13
4 files changed, 71 insertions, 17 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..67eafc6569e 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
@@ -24,7 +24,7 @@ public class DomSearchTuningBuilder extends VespaDomBuilder.DomConfigProducerBui
if (equals("dispatch", e)) {
handleDispatch(e, tuning);
} else if (equals("searchnode", e)) {
- handleSearchNode(deployState.getDeployLogger(), e, tuning);
+ handleSearchNode(e, tuning);
}
}
return tuning;
@@ -59,13 +59,13 @@ public class DomSearchTuningBuilder extends VespaDomBuilder.DomConfigProducerBui
}
}
- private void handleSearchNode(DeployLogger deployLogger, Element spec, Tuning t) {
+ private void handleSearchNode(Element spec, Tuning t) {
t.searchNode = new Tuning.SearchNode();
for (Element e : XML.getChildren(spec)) {
if (equals("requestthreads", e)) {
handleRequestThreads(e, t.searchNode);
} else if (equals("flushstrategy", e)) {
- handleFlushStrategy(deployLogger,e, t.searchNode);
+ handleFlushStrategy(e, t.searchNode);
} else if (equals("resizing", e)) {
handleResizing(e, t.searchNode);
} else if (equals("index", e)) {
@@ -73,11 +73,13 @@ public class DomSearchTuningBuilder extends VespaDomBuilder.DomConfigProducerBui
} else if (equals("attribute", e)) {
handleAttribute(e, t.searchNode);
} else if (equals("summary", e)) {
- handleSummary(deployLogger, e, t.searchNode);
+ handleSummary(e, t.searchNode);
} else if (equals("initialize", e)) {
handleInitialize(e, t.searchNode);
} else if (equals("feeding", e)) {
handleFeeding(e, t.searchNode);
+ } else if (equals("removed-db", e)) {
+ handleRemovedDB(e, t.searchNode);
}
}
}
@@ -96,15 +98,32 @@ public class DomSearchTuningBuilder extends VespaDomBuilder.DomConfigProducerBui
}
}
- private void handleFlushStrategy(DeployLogger deployLogger, Element spec, Tuning.SearchNode sn) {
+ private void handleRemovedDB(Element spec, Tuning.SearchNode sn) {
+ sn.removedDB = new Tuning.SearchNode.RemovedDB();
+ for (Element e : XML.getChildren(spec)) {
+ if (equals("prune", e)) {
+ sn.removedDB.prune = new Tuning.SearchNode.RemovedDB.Prune();
+ Tuning.SearchNode.RemovedDB.Prune prune = sn.removedDB.prune;
+ for (Element e2 : XML.getChildren(e)) {
+ if (equals("age", e2)) {
+ prune.age = asDouble(e2);
+ } else if (equals("interval", e2)) {
+ prune.interval = asDouble(e2);
+ }
+ }
+ }
+ }
+ }
+
+ private void handleFlushStrategy(Element spec, Tuning.SearchNode sn) {
for (Element e : XML.getChildren(spec)) {
if (equals("native", e)) {
- handleNativeStrategy(deployLogger, e, sn);
+ handleNativeStrategy(e, sn);
}
}
}
- private void handleNativeStrategy(DeployLogger deployLogger, Element spec, Tuning.SearchNode sn) {
+ private void handleNativeStrategy(Element spec, Tuning.SearchNode sn) {
sn.strategy = new Tuning.SearchNode.FlushStrategy();
Tuning.SearchNode.FlushStrategy fs = sn.strategy;
for (Element e : XML.getChildren(spec)) {
@@ -186,7 +205,7 @@ public class DomSearchTuningBuilder extends VespaDomBuilder.DomConfigProducerBui
}
}
- private void handleSummary(DeployLogger deployLogger, Element spec, Tuning.SearchNode sn) {
+ private void handleSummary(Element spec, Tuning.SearchNode sn) {
sn.summary = new Tuning.SearchNode.Summary();
for (Element e : XML.getChildren(spec)) {
if (equals("io", e)) {
@@ -199,24 +218,24 @@ public class DomSearchTuningBuilder extends VespaDomBuilder.DomConfigProducerBui
}
}
} else if (equals("store", e)) {
- handleSummaryStore(deployLogger, e, sn.summary);
+ handleSummaryStore(e, sn.summary);
}
}
}
- private void handleSummaryStore(DeployLogger deployLogger, Element spec, Tuning.SearchNode.Summary s) {
+ private void handleSummaryStore(Element spec, Tuning.SearchNode.Summary s) {
s.store = new Tuning.SearchNode.Summary.Store();
for (Element e : XML.getChildren(spec)) {
if (equals("cache", e)) {
s.store.cache = new Tuning.SearchNode.Summary.Store.Component();
- handleSummaryStoreComponent(deployLogger, e, s.store.cache);
+ handleSummaryStoreComponent(e, s.store.cache);
} else if (equals("logstore", e)) {
- handleSummaryLogStore(deployLogger, e, s.store);
+ handleSummaryLogStore(e, s.store);
}
}
}
- private void handleSummaryStoreComponent(DeployLogger deployLogger, Element spec, Tuning.SearchNode.Summary.Store.Component c) {
+ private void handleSummaryStoreComponent(Element spec, Tuning.SearchNode.Summary.Store.Component c) {
for (Element e : XML.getChildren(spec)) {
if (equals("maxsize", e)) {
c.maxSize = asLong(e);
@@ -241,7 +260,7 @@ public class DomSearchTuningBuilder extends VespaDomBuilder.DomConfigProducerBui
}
}
- private void handleSummaryLogStore(DeployLogger deployLogger, Element spec, Tuning.SearchNode.Summary.Store s) {
+ private void handleSummaryLogStore(Element spec, Tuning.SearchNode.Summary.Store s) {
s.logStore = new Tuning.SearchNode.Summary.Store.LogStore();
for (Element e : XML.getChildren(spec)) {
if (equals("maxfilesize", e)) {
@@ -250,7 +269,7 @@ public class DomSearchTuningBuilder extends VespaDomBuilder.DomConfigProducerBui
s.logStore.minFileSizeFactor = asDouble(e);
} else if (equals("chunk", e)) {
s.logStore.chunk = new Tuning.SearchNode.Summary.Store.Component(true);
- handleSummaryStoreComponent(deployLogger, e, s.logStore.chunk);
+ handleSummaryStoreComponent(e, s.logStore.chunk);
}
}
}
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..7bac61900d4 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
@@ -91,6 +91,26 @@ public class Tuning extends AbstractConfigProducer implements PartitionsConfig.P
}
}
+ public static class RemovedDB implements ProtonConfig.Producer {
+
+ public static class Prune implements ProtonConfig.Producer {
+ public Double age = null;
+ public Double interval = null;
+
+ @Override
+ public void getConfig(ProtonConfig.Builder builder) {
+ if (age != null) builder.pruneremoveddocumentsage(age);
+ if (interval != null) builder.pruneremoveddocumentsinterval(interval);
+ }
+ }
+
+ public Prune prune;
+ @Override
+ public void getConfig(ProtonConfig.Builder builder) {
+ if (prune != null) prune.getConfig(builder);
+ }
+ }
+
public static class FlushStrategy implements ProtonConfig.Producer {
public Long totalMaxMemoryGain = null;
public Double totalDiskBloatFactor = null;
@@ -356,6 +376,7 @@ public class Tuning extends AbstractConfigProducer implements PartitionsConfig.P
public Summary summary = null;
public Initialize initialize = null;
public Feeding feeding = null;
+ public RemovedDB removedDB = null;
@Override
public void getConfig(ProtonConfig.Builder builder) {
@@ -367,6 +388,7 @@ public class Tuning extends AbstractConfigProducer implements PartitionsConfig.P
if (summary != null) summary.getConfig(builder);
if (initialize != null) initialize.getConfig(builder);
if (feeding != null) feeding.getConfig(builder);
+ if (removedDB != null) removedDB.getConfig(builder);
}
}
diff --git a/config-model/src/main/resources/schema/content.rnc b/config-model/src/main/resources/schema/content.rnc
index 08fb560b4e4..7848968eece 100644
--- a/config-model/src/main/resources/schema/content.rnc
+++ b/config-model/src/main/resources/schema/content.rnc
@@ -353,8 +353,8 @@ Tuning = element tuning {
element feeding {
element concurrency { xsd:double { minInclusive = "0.0" maxInclusive = "1.0" } }?
}? &
- element prune {
- element removed {
+ element removed-db {
+ element prune {
element age { xsd:double { minInclusive = "0.0" } }? &
element interval { xsd:double { minInclusive = "60.0" } }?
}?
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..f48c24ae123 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
@@ -155,6 +155,19 @@ public class DomSearchTuningBuilderTest extends DomBuilderTest {
}
@Test
+ public void requireThatWeCanParseRemovedDBTag() {
+ Tuning t = createTuning(parseXml("<removed-db>", "<prune>",
+ "<age>19388</age>",
+ "<interval>193</interval>",
+ "</prune>", "</removed-db>"));
+ assertEquals(19388, t.searchNode.removedDB.prune.age, DELTA);
+ assertEquals(193, t.searchNode.removedDB.prune.interval, DELTA);
+ String cfg = getProtonCfg(t);
+ assertThat(cfg, containsString("pruneremoveddocumentsinterval 193"));
+ assertThat(cfg, containsString("pruneremoveddocumentsage 19388"));
+ }
+
+ @Test
public void requireThatWeCanParseAttributeTag() {
Tuning t = createTuning(parseXml("<attribute>", "<io>",
"<write>directio</write>",