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 2012/12/06 05:39:31 UTC
svn commit: r1417736 - in /lucene/dev/trunk/solr: CHANGES.txt
core/src/java/org/apache/solr/core/NRTCachingDirectoryFactory.java
Author: markrmiller
Date: Thu Dec 6 04:39:30 2012
New Revision: 1417736
URL: http://svn.apache.org/viewvc?rev=1417736&view=rev
Log:
SOLR-3531: Allowing configuring maxMergeSizeMB and maxCachedMB when using NRTCachingDirectoryFactory.
Modified:
lucene/dev/trunk/solr/CHANGES.txt
lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/NRTCachingDirectoryFactory.java
Modified: lucene/dev/trunk/solr/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/CHANGES.txt?rev=1417736&r1=1417735&r2=1417736&view=diff
==============================================================================
--- lucene/dev/trunk/solr/CHANGES.txt (original)
+++ lucene/dev/trunk/solr/CHANGES.txt Thu Dec 6 04:39:30 2012
@@ -109,6 +109,9 @@ New Features
* SOLR-4114: Allow creating more than one shard per instance with the
Collection API. (Per Steffensen, Mark Miller)
+* SOLR-3531: Allowing configuring maxMergeSizeMB and maxCachedMB when
+ using NRTCachingDirectoryFactory. (Andy Laird via Mark Miller)
+
Optimizations
----------------------
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/NRTCachingDirectoryFactory.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/NRTCachingDirectoryFactory.java?rev=1417736&r1=1417735&r2=1417736&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/NRTCachingDirectoryFactory.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/core/NRTCachingDirectoryFactory.java Thu Dec 6 04:39:30 2012
@@ -23,15 +23,32 @@ import java.io.IOException;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.FSDirectory;
import org.apache.lucene.store.NRTCachingDirectory;
+import org.apache.solr.common.params.SolrParams;
+import org.apache.solr.common.util.NamedList;
/**
* Factory to instantiate {@link org.apache.lucene.store.NRTCachingDirectory}
*/
public class NRTCachingDirectoryFactory extends StandardDirectoryFactory {
+ private double maxMergeSizeMB;
+ private double maxCachedMB;
+
+ @Override
+ public void init(NamedList args) {
+ SolrParams params = SolrParams.toSolrParams(args);
+ maxMergeSizeMB = params.getDouble("maxMergeSizeMB", 4);
+ if (maxMergeSizeMB <= 0){
+ throw new IllegalArgumentException("maxMergeSizeMB must be greater than 0");
+ }
+ maxCachedMB = params.getDouble("maxCachedMB", 48);
+ if (maxCachedMB <= 0){
+ throw new IllegalArgumentException("maxCachedMB must be greater than 0");
+ }
+ }
@Override
protected Directory create(String path) throws IOException {
- return new NRTCachingDirectory(FSDirectory.open(new File(path)), 4, 48);
+ return new NRTCachingDirectory(FSDirectory.open(new File(path)), maxMergeSizeMB, maxCachedMB);
}
}