aboutsummaryrefslogtreecommitdiffstats
path: root/config-model
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2018-11-15 13:03:26 +0100
committerGitHub <noreply@github.com>2018-11-15 13:03:26 +0100
commit31a7f27dcf8626f3b8e93b38d810591dd56bfc8e (patch)
tree18e1bf9837b0d9702eaadf69ba8f8f4ea5d67339 /config-model
parent733522c1b19d84020aee5b5993001b60e9381457 (diff)
parent9b7255274a80ccc15224b224949443a103a1873b (diff)
Merge pull request #7668 from vespa-engine/balder/avoid-readahead-on-fast-disks-to-favour-memory-footprint
No readahead on mapped disk indexes when using ssd's
Diffstat (limited to 'config-model')
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/search/NodeFlavorTuning.java8
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/search/NodeFlavorTuningTest.java10
2 files changed, 17 insertions, 1 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/search/NodeFlavorTuning.java b/config-model/src/main/java/com/yahoo/vespa/model/search/NodeFlavorTuning.java
index f6f64eba482..b845b180548 100644
--- a/config-model/src/main/java/com/yahoo/vespa/model/search/NodeFlavorTuning.java
+++ b/config-model/src/main/java/com/yahoo/vespa/model/search/NodeFlavorTuning.java
@@ -5,7 +5,6 @@ import com.yahoo.config.provision.Flavor;
import com.yahoo.vespa.config.search.core.ProtonConfig;
import static java.lang.Long.min;
-import static java.lang.Integer.max;
/**
* Tuning of proton config for a search node based on the node flavor of that node.
@@ -31,6 +30,7 @@ public class NodeFlavorTuning implements ProtonConfig.Producer {
tuneFlushStrategyTlsSize(builder.flush.memory);
tuneSummaryReadIo(builder.summary.read);
tuneSummaryCache(builder.summary.cache);
+ tuneSearchReadIo(builder.search.mmap);
}
private void tuneSummaryCache(ProtonConfig.Summary.Cache.Builder builder) {
@@ -82,4 +82,10 @@ public class NodeFlavorTuning implements ProtonConfig.Producer {
}
}
+ private void tuneSearchReadIo(ProtonConfig.Search.Mmap.Builder builder) {
+ if (nodeFlavor.hasFastDisk()) {
+ builder.advise(ProtonConfig.Search.Mmap.Advise.RANDOM);
+ }
+ }
+
}
diff --git a/config-model/src/test/java/com/yahoo/vespa/model/search/NodeFlavorTuningTest.java b/config-model/src/test/java/com/yahoo/vespa/model/search/NodeFlavorTuningTest.java
index 3019b35cd2e..95503550767 100644
--- a/config-model/src/test/java/com/yahoo/vespa/model/search/NodeFlavorTuningTest.java
+++ b/config-model/src/test/java/com/yahoo/vespa/model/search/NodeFlavorTuningTest.java
@@ -87,6 +87,12 @@ public class NodeFlavorTuningTest {
}
@Test
+ public void require_that_search_read_mmap_advise_is_set_based_on_disk() {
+ assertSearchReadAdvise(ProtonConfig.Search.Mmap.Advise.RANDOM, true);
+ assertSearchReadAdvise(ProtonConfig.Search.Mmap.Advise.NORMAL, false);
+ }
+
+ @Test
public void require_that_summary_cache_max_bytes_is_set_based_on_memory() {
assertEquals(1*GB/20, configFromMemorySetting(1).summary().cache().maxbytes());
assertEquals(256*GB/20, configFromMemorySetting(256).summary().cache().maxbytes());
@@ -115,6 +121,10 @@ public class NodeFlavorTuningTest {
assertEquals(expValue, configFromDiskSetting(fastDisk).summary().read().io());
}
+ private static void assertSearchReadAdvise(ProtonConfig.Search.Mmap.Advise.Enum expValue, boolean fastDisk) {
+ assertEquals(expValue, configFromDiskSetting(fastDisk).search().mmap().advise());
+ }
+
private static void assertSharedDisk(boolean sharedDisk, boolean docker) {
assertEquals(sharedDisk, configFromEnvironmentType(docker).hwinfo().disk().shared());
}