diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2017-10-09 17:25:49 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-10-09 17:25:49 +0200 |
commit | 4e0d00861a9c284d11814b18cf848eedf33ec105 (patch) | |
tree | 4aa924044dd541e87d234ffe3227b1c92373747a | |
parent | a870d316116c58d4c82c263704e31d06df1b4ca2 (diff) | |
parent | 60606a6bac8cbd95ce67cf27bf210694b47b044c (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.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)); |