diff options
author | Geir Storli <geirst@oath.com> | 2017-10-09 16:25:35 +0200 |
---|---|---|
committer | Geir Storli <geirst@oath.com> | 2017-10-09 16:25:35 +0200 |
commit | 60606a6bac8cbd95ce67cf27bf210694b47b044c (patch) | |
tree | f6da470b6778a02d0db7d37e15af063140e195fe /config-model | |
parent | fe8b4bfa8929ed37d4318ae0c42a96533811af42 (diff) |
Use Direct I/O on document store reads in proton when disk is fast (SSD).
Diffstat (limited to 'config-model')
-rw-r--r-- | config-model/src/main/java/com/yahoo/vespa/model/search/NodeFlavorTuning.java | 7 | ||||
-rw-r--r-- | config-model/src/test/java/com/yahoo/vespa/model/search/NodeFlavorTuningTest.java | 10 |
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)); |