You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by kr...@apache.org on 2017/01/03 18:48:15 UTC

[04/50] lucene-solr:jira/solr-8593: SOLR-9899: StandardDirectoryFactory should use optimizations for all FilterDirectorys not just NRTCachingDirectory.

SOLR-9899: StandardDirectoryFactory should use optimizations for all FilterDirectorys not just NRTCachingDirectory.


Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/262049fc
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/262049fc
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/262049fc

Branch: refs/heads/jira/solr-8593
Commit: 262049fc8f60a166f0eed0aef5d7ddd1e7c90bc7
Parents: 96ed221
Author: markrmiller <ma...@apache.org>
Authored: Wed Dec 28 17:42:41 2016 -0500
Committer: markrmiller <ma...@apache.org>
Committed: Wed Dec 28 18:52:20 2016 -0500

----------------------------------------------------------------------
 solr/CHANGES.txt                                     |  3 +++
 .../java/org/apache/solr/core/DirectoryFactory.java  | 11 +++++++++++
 .../apache/solr/core/StandardDirectoryFactory.java   | 15 ---------------
 3 files changed, 14 insertions(+), 15 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/262049fc/solr/CHANGES.txt
----------------------------------------------------------------------
diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt
index c3cac28..501527a 100644
--- a/solr/CHANGES.txt
+++ b/solr/CHANGES.txt
@@ -343,6 +343,9 @@ Other Changes
 
 * SOLR-9448: providing a test to workaround a differently named uniqueKey field (Mikhail Khludnev)
 
+* SOLR-9899: StandardDirectoryFactory should use optimizations for all FilterDirectorys not just NRTCachingDirectory.
+  (Mark Miller)
+
 ==================  6.3.0 ==================
 
 Consult the LUCENE_CHANGES.txt file for additional, low level, changes in this release.

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/262049fc/solr/core/src/java/org/apache/solr/core/DirectoryFactory.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/core/DirectoryFactory.java b/solr/core/src/java/org/apache/solr/core/DirectoryFactory.java
index 396a30d..136a0a6 100644
--- a/solr/core/src/java/org/apache/solr/core/DirectoryFactory.java
+++ b/solr/core/src/java/org/apache/solr/core/DirectoryFactory.java
@@ -27,6 +27,7 @@ import java.util.Collections;
 
 import org.apache.commons.io.FileUtils;
 import org.apache.lucene.store.Directory;
+import org.apache.lucene.store.FilterDirectory;
 import org.apache.lucene.store.FlushInfo;
 import org.apache.lucene.store.IOContext;
 import org.apache.lucene.store.LockFactory;
@@ -371,4 +372,14 @@ public abstract class DirectoryFactory implements NamedListInitializedPlugin,
   public void initCoreContainer(CoreContainer cc) {
     this.coreContainer = cc;
   }
+  
+  // special hack to work with FilterDirectory
+  protected Directory getBaseDir(Directory dir) {
+    Directory baseDir = dir;
+    while (baseDir instanceof FilterDirectory) {
+      baseDir = ((FilterDirectory)baseDir).getDelegate();
+    } 
+    
+    return baseDir;
+  }
 }

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/262049fc/solr/core/src/java/org/apache/solr/core/StandardDirectoryFactory.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/core/StandardDirectoryFactory.java b/solr/core/src/java/org/apache/solr/core/StandardDirectoryFactory.java
index d418137..b24be14 100644
--- a/solr/core/src/java/org/apache/solr/core/StandardDirectoryFactory.java
+++ b/solr/core/src/java/org/apache/solr/core/StandardDirectoryFactory.java
@@ -30,7 +30,6 @@ import org.apache.lucene.store.Directory;
 import org.apache.lucene.store.FSDirectory;
 import org.apache.lucene.store.IOContext;
 import org.apache.lucene.store.LockFactory;
-import org.apache.lucene.store.NRTCachingDirectory;
 import org.apache.lucene.store.NativeFSLockFactory;
 import org.apache.lucene.store.NoLockFactory;
 import org.apache.lucene.store.SimpleFSLockFactory;
@@ -116,8 +115,6 @@ public class StandardDirectoryFactory extends CachingDirectoryFactory {
    * carefully - some Directory wrappers will
    * cache files for example.
    * 
-   * This implementation works with NRTCachingDirectory.
-   * 
    * You should first {@link Directory#sync(java.util.Collection)} any file that will be 
    * moved or avoid cached files through settings.
    * 
@@ -144,18 +141,6 @@ public class StandardDirectoryFactory extends CachingDirectoryFactory {
 
     super.move(fromDir, toDir, fileName, ioContext);
   }
-
-  // special hack to work with NRTCachingDirectory
-  private Directory getBaseDir(Directory dir) {
-    Directory baseDir;
-    if (dir instanceof NRTCachingDirectory) {
-      baseDir = ((NRTCachingDirectory)dir).getDelegate();
-    } else {
-      baseDir = dir;
-    }
-    
-    return baseDir;
-  }
   
   // perform an atomic rename if possible
   public void renameWithOverwrite(Directory dir, String fileName, String toName) throws IOException {