summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2017-10-09 17:25:49 +0200
committerGitHub <noreply@github.com>2017-10-09 17:25:49 +0200
commit4e0d00861a9c284d11814b18cf848eedf33ec105 (patch)
tree4aa924044dd541e87d234ffe3227b1c92373747a
parenta870d316116c58d4c82c263704e31d06df1b4ca2 (diff)
parent60606a6bac8cbd95ce67cf27bf210694b47b044c (diff)
Merge pull request #3691 from vespa-engine/geirst/directio-on-document-store-read-if-ssd
Use Direct I/O on document store reads in proton when disk is fast (S…
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/search/NodeFlavorTuning.java7
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/search/NodeFlavorTuningTest.java10
2 files changed, 17 insertions, 0 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 6cfd52cc232..5f552f119c5 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
@@ -30,6 +30,7 @@ public class NodeFlavorTuning implements ProtonConfig.Producer {
tuneDocumentStoreNumThreads(builder.background);
tuneFlushStrategyMemoryLimits(builder.flush.memory);
tuneFlushStrategyTlsSize(builder.flush.memory);
+ tuneSummaryReadIo(builder.summary.read);
}
private void setHwInfo(ProtonConfig.Builder builder) {
@@ -72,4 +73,10 @@ public class NodeFlavorTuning implements ProtonConfig.Producer {
builder.maxtlssize(tlsSizeBytes);
}
+ private void tuneSummaryReadIo(ProtonConfig.Summary.Read.Builder builder) {
+ if (nodeFlavor.hasFastDisk()) {
+ builder.io(ProtonConfig.Summary.Read.Io.DIRECTIO);
+ }
+ }
+
}
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 75f6abb2542..04ae3de3707 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 {
assertFlushStrategyTlsSize(100 * GB, 24000);
}
+ @Test
+ public void require_that_summary_read_io_is_set_based_on_disk() {
+ assertSummaryReadIo(ProtonConfig.Summary.Read.Io.DIRECTIO, true);
+ assertSummaryReadIo(ProtonConfig.Summary.Read.Io.MMAP, false);
+ }
+
private static void assertDocumentStoreMaxFileSize(long expFileSizeBytes, int memoryGb) {
assertEquals(expFileSizeBytes, configFromMemorySetting(memoryGb).summary().log().maxfilesize());
}
@@ -104,6 +110,10 @@ public class NodeFlavorTuningTest {
assertEquals(expTlsSizeBytes, configFromDiskSetting(diskGb).flush().memory().maxtlssize());
}
+ private static void assertSummaryReadIo(ProtonConfig.Summary.Read.Io.Enum expValue, boolean fastDisk) {
+ assertEquals(expValue, configFromDiskSetting(fastDisk).summary().read().io());
+ }
+
private static ProtonConfig configFromDiskSetting(boolean fastDisk) {
return getConfig(new FlavorsConfig.Flavor.Builder().
fastDisk(fastDisk));