You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by rj...@apache.org on 2014/04/22 21:45:59 UTC
svn commit: r1589272 - in /lucene/dev/trunk/solr: ./
core/src/java/org/apache/solr/update/
core/src/test-files/solr/collection1/conf/
core/src/test/org/apache/solr/update/ example/solr/collection1/conf/
Author: rjernst
Date: Tue Apr 22 19:45:58 2014
New Revision: 1589272
URL: http://svn.apache.org/r1589272
Log:
SOLR-5999: Add checkIntegrityAtMerge support to solrconfig.xml
Modified:
lucene/dev/trunk/solr/CHANGES.txt
lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/SolrIndexConfig.java
lucene/dev/trunk/solr/core/src/test-files/solr/collection1/conf/solrconfig-indexconfig.xml
lucene/dev/trunk/solr/core/src/test/org/apache/solr/update/SolrIndexConfigTest.java
lucene/dev/trunk/solr/example/solr/collection1/conf/solrconfig.xml
Modified: lucene/dev/trunk/solr/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/CHANGES.txt?rev=1589272&r1=1589271&r2=1589272&view=diff
==============================================================================
--- lucene/dev/trunk/solr/CHANGES.txt (original)
+++ lucene/dev/trunk/solr/CHANGES.txt Tue Apr 22 19:45:58 2014
@@ -101,6 +101,12 @@ Upgrading from Solr 4.8
Detailed Change List
----------------------
+New Features
+----------------------
+
+* SOLR-5999: Add checkIntegrityAtMerge support to solrconfig.xml.
+ (Varun Thacker via Ryan Ernst)
+
Bug Fixes
----------------------
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/SolrIndexConfig.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/SolrIndexConfig.java?rev=1589272&r1=1589271&r2=1589272&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/SolrIndexConfig.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/update/SolrIndexConfig.java Tue Apr 22 19:45:58 2014
@@ -78,6 +78,8 @@ public class SolrIndexConfig {
public final static String LOCK_TYPE_SINGLE = "single";
public final static String LOCK_TYPE_NONE = "none";
+ public final boolean checkIntegrityAtMerge;
+
/**
* Internal constructor for setting defaults based on Lucene Version
*/
@@ -96,6 +98,7 @@ public class SolrIndexConfig {
mergeSchedulerInfo = null;
defaultMergePolicyClassName = TieredMergePolicy.class.getName();
mergedSegmentWarmerInfo = null;
+ checkIntegrityAtMerge = false;
}
/**
@@ -167,6 +170,8 @@ public class SolrIndexConfig {
if (mergedSegmentWarmerInfo != null && solrConfig.nrtMode == false) {
throw new IllegalArgumentException("Supplying a mergedSegmentWarmer will do nothing since nrtMode is false");
}
+
+ checkIntegrityAtMerge = solrConfig.getBool(prefix + "/checkIntegrityAtMerge", def.checkIntegrityAtMerge);
}
/*
@@ -227,6 +232,8 @@ public class SolrIndexConfig {
iwc.setMergedSegmentWarmer(warmer);
}
+ iwc.setCheckIntegrityAtMerge(checkIntegrityAtMerge);
+
return iwc;
}
Modified: lucene/dev/trunk/solr/core/src/test-files/solr/collection1/conf/solrconfig-indexconfig.xml
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/test-files/solr/collection1/conf/solrconfig-indexconfig.xml?rev=1589272&r1=1589271&r2=1589272&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/test-files/solr/collection1/conf/solrconfig-indexconfig.xml (original)
+++ lucene/dev/trunk/solr/core/src/test-files/solr/collection1/conf/solrconfig-indexconfig.xml Tue Apr 22 19:45:58 2014
@@ -26,5 +26,6 @@
<maxIndexingThreads>123</maxIndexingThreads>
<infoStream>true</infoStream>
<mergePolicy class="org.apache.solr.util.RandomMergePolicy" />
+ <checkIntegrityAtMerge>true</checkIntegrityAtMerge>
</indexConfig>
</config>
Modified: lucene/dev/trunk/solr/core/src/test/org/apache/solr/update/SolrIndexConfigTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/test/org/apache/solr/update/SolrIndexConfigTest.java?rev=1589272&r1=1589271&r2=1589272&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/test/org/apache/solr/update/SolrIndexConfigTest.java (original)
+++ lucene/dev/trunk/solr/core/src/test/org/apache/solr/update/SolrIndexConfigTest.java Tue Apr 22 19:45:58 2014
@@ -17,19 +17,21 @@ package org.apache.solr.update;
* limitations under the License.
*/
-import java.io.File;
-
-import org.apache.solr.core.TestMergePolicyConfig;
-
+import org.apache.lucene.index.ConcurrentMergeScheduler;
import org.apache.lucene.index.IndexWriterConfig;
import org.apache.lucene.index.SimpleMergedSegmentWarmer;
import org.apache.lucene.index.TieredMergePolicy;
-import org.apache.lucene.index.ConcurrentMergeScheduler;
import org.apache.solr.SolrTestCaseJ4;
import org.apache.solr.core.SolrConfig;
+import org.apache.solr.core.TestMergePolicyConfig;
import org.apache.solr.schema.IndexSchema;
import org.apache.solr.schema.IndexSchemaFactory;
import org.junit.Test;
+import org.xml.sax.SAXException;
+
+import javax.xml.parsers.ParserConfigurationException;
+import java.io.File;
+import java.io.IOException;
/**
* Testcase for {@link SolrIndexConfig}
@@ -75,7 +77,19 @@ public class SolrIndexConfigTest extends
assertEquals("ms.maxThreadCount", 42, ms.getMaxThreadCount());
}
-
+
+ @Test
+ public void testCheckIntegrityAtMerge() throws Exception {
+ SolrConfig solrConfig = new SolrConfig("solr" + File.separator
+ + "collection1", "solrconfig-indexconfig.xml", null);
+ SolrIndexConfig solrIndexConfig = new SolrIndexConfig(solrConfig, null, null);
+ assertNotNull(solrIndexConfig.checkIntegrityAtMerge);
+ assertTrue(solrIndexConfig.checkIntegrityAtMerge);
+ IndexSchema indexSchema = IndexSchemaFactory.buildIndexSchema("schema.xml", solrConfig);
+ IndexWriterConfig iwc = solrIndexConfig.toIndexWriterConfig(indexSchema);
+ assertTrue(iwc.getCheckIntegrityAtMerge());
+ }
+
public void testMergedSegmentWarmerIndexConfigCreation() throws Exception {
SolrConfig solrConfig = new SolrConfig("solr" + File.separator
+ "collection1", "solrconfig-warmer.xml", null);
Modified: lucene/dev/trunk/solr/example/solr/collection1/conf/solrconfig.xml
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/example/solr/collection1/conf/solrconfig.xml?rev=1589272&r1=1589271&r2=1589272&view=diff
==============================================================================
--- lucene/dev/trunk/solr/example/solr/collection1/conf/solrconfig.xml (original)
+++ lucene/dev/trunk/solr/example/solr/collection1/conf/solrconfig.xml Tue Apr 22 19:45:58 2014
@@ -323,6 +323,13 @@
this is enabled here, and controlled through log4j.properties.
-->
<infoStream>true</infoStream>
+
+ <!--
+ Use true to enable this safety check, which can help
+ reduce the risk of propagating index corruption from older segments
+ into new ones, at the expense of slower merging.
+ -->
+ <checkIntegrityAtMerge>false</checkIntegrityAtMerge>
</indexConfig>