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

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

Repository: lucene-solr
Updated Branches:
  refs/heads/branch_6x c6ea17186 -> 6caefcda8


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/6caefcda
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/6caefcda
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/6caefcda

Branch: refs/heads/branch_6x
Commit: 6caefcda8b9aefb1f107e629e1c00de7d9104ec4
Parents: c6ea171
Author: markrmiller <ma...@apache.org>
Authored: Tue Jan 3 14:39:57 2017 -0500
Committer: markrmiller <ma...@apache.org>
Committed: Tue Jan 3 14:39:57 2017 -0500

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


http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/6caefcda/solr/CHANGES.txt
----------------------------------------------------------------------
diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt
index 0b3a38a..0429e17 100644
--- a/solr/CHANGES.txt
+++ b/solr/CHANGES.txt
@@ -305,6 +305,9 @@ Other Changes
 * SOLR-9915: PeerSync alreadyInSync check is not backwards compatible and results in full replication during a rolling restart
   (Tim Owen via noble)
 
+* 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/6caefcda/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/6caefcda/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 e3a7dd0..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,20 +141,6 @@ public class StandardDirectoryFactory extends CachingDirectoryFactory {
 
     super.move(fromDir, toDir, fileName, ioContext);
   }
-
-  // special hack to work with NRTCachingDirectory and MetricsDirectory
-  private Directory getBaseDir(Directory dir) {
-    Directory baseDir;
-    if (dir instanceof NRTCachingDirectory) {
-      baseDir = ((NRTCachingDirectory) dir).getDelegate();
-    } else if (dir instanceof MetricsDirectoryFactory.MetricsDirectory) {
-      baseDir = ((MetricsDirectoryFactory.MetricsDirectory)dir).getDelegate();
-    } else {
-      baseDir = dir;
-    }
-    
-    return baseDir;
-  }
   
   // perform an atomic rename if possible
   public void renameWithOverwrite(Directory dir, String fileName, String toName) throws IOException {