From bb36405fab8fb5c3ae07d4b456d10f2a0c77667a Mon Sep 17 00:00:00 2001 From: jimczi Date: Wed, 12 Jun 2019 13:32:36 +0200 Subject: [PATCH 1/2] Also mmap terms index (`.tip`) files for hybridfs This change adds the terms index (`.tip`) to the list of extensions that are memory-mapped by hybridfs. These files used to be accessed only once to load the terms index on-heap but since #42838 they can now be used to read the binary FST directly so it is benefical to memory-map them instead of accessing them via NIO. --- .../java/org/elasticsearch/index/store/FsDirectoryFactory.java | 1 + 1 file changed, 1 insertion(+) diff --git a/server/src/main/java/org/elasticsearch/index/store/FsDirectoryFactory.java b/server/src/main/java/org/elasticsearch/index/store/FsDirectoryFactory.java index c86206763caab..0342b7bf3dcbd 100644 --- a/server/src/main/java/org/elasticsearch/index/store/FsDirectoryFactory.java +++ b/server/src/main/java/org/elasticsearch/index/store/FsDirectoryFactory.java @@ -147,6 +147,7 @@ public IndexInput openInput(String name, IOContext context) throws IOException { case "nvd": case "dvd": case "tim": + case "tip": case "cfs": // we need to do these checks on the outer directory since the inner doesn't know about pending deletes ensureOpen(); From d0134932fa8a1ac544243ff5468d8cbb05561494 Mon Sep 17 00:00:00 2001 From: jimczi Date: Wed, 12 Jun 2019 17:49:08 +0200 Subject: [PATCH 2/2] adapt code after the merge of #42937 --- .../org/elasticsearch/index/store/FsDirectoryFactoryTests.java | 1 + 1 file changed, 1 insertion(+) diff --git a/server/src/test/java/org/elasticsearch/index/store/FsDirectoryFactoryTests.java b/server/src/test/java/org/elasticsearch/index/store/FsDirectoryFactoryTests.java index 59ac083fae112..dfba867bf3c1d 100644 --- a/server/src/test/java/org/elasticsearch/index/store/FsDirectoryFactoryTests.java +++ b/server/src/test/java/org/elasticsearch/index/store/FsDirectoryFactoryTests.java @@ -61,6 +61,7 @@ public void testPreload() throws IOException { assertTrue(hybridDirectory.useDelegate("foo.dvd")); assertTrue(hybridDirectory.useDelegate("foo.nvd")); assertTrue(hybridDirectory.useDelegate("foo.tim")); + assertTrue(hybridDirectory.useDelegate("foo.tip")); assertTrue(hybridDirectory.useDelegate("foo.cfs")); assertFalse(hybridDirectory.useDelegate("foo.bar")); MMapDirectory delegate = hybridDirectory.getDelegate();