You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by cp...@apache.org on 2016/02/11 14:25:20 UTC

[1/2] lucene-solr git commit: SOLR-8621: fix mergePolicyFacory vs. mergePolicyFactory typos in comments in solr/contrib and solr/example solrconfig.xml files.

Repository: lucene-solr
Updated Branches:
  refs/heads/branch_5_5 7a329d4e2 -> 3f06f9a76


SOLR-8621: fix mergePolicyFacory vs. mergePolicyFactory typos in comments in solr/contrib and solr/example solrconfig.xml files.


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

Branch: refs/heads/branch_5_5
Commit: 47055d569dbefb41f88631ad917ab76b550ad8d4
Parents: 7a329d4
Author: Christine Poerschke <cp...@apache.org>
Authored: Wed Feb 10 21:22:17 2016 +0000
Committer: Christine Poerschke <cp...@apache.org>
Committed: Thu Feb 11 13:10:09 2016 +0000

----------------------------------------------------------------------
 .../src/test-files/solr/collection1/conf/solrconfig.xml            | 2 +-
 .../morphlines-core/src/test-files/solr/minimr/conf/solrconfig.xml | 2 +-
 .../morphlines-core/src/test-files/solr/mrunit/conf/solrconfig.xml | 2 +-
 .../test-files/solr/solrcelltest/collection1/conf/solrconfig.xml   | 2 +-
 .../src/test-files/solr/solrcloud/conf/solrconfig.xml              | 2 +-
 solr/example/example-DIH/solr/db/conf/solrconfig.xml               | 2 +-
 solr/example/example-DIH/solr/mail/conf/solrconfig.xml             | 2 +-
 solr/example/example-DIH/solr/rss/conf/solrconfig.xml              | 2 +-
 solr/example/example-DIH/solr/solr/conf/solrconfig.xml             | 2 +-
 solr/example/example-DIH/solr/tika/conf/solrconfig.xml             | 2 +-
 solr/example/files/conf/solrconfig.xml                             | 2 +-
 11 files changed, 11 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/47055d56/solr/contrib/morphlines-core/src/test-files/solr/collection1/conf/solrconfig.xml
----------------------------------------------------------------------
diff --git a/solr/contrib/morphlines-core/src/test-files/solr/collection1/conf/solrconfig.xml b/solr/contrib/morphlines-core/src/test-files/solr/collection1/conf/solrconfig.xml
index ebae3a7..0dc02d9 100644
--- a/solr/contrib/morphlines-core/src/test-files/solr/collection1/conf/solrconfig.xml
+++ b/solr/contrib/morphlines-core/src/test-files/solr/collection1/conf/solrconfig.xml
@@ -165,7 +165,7 @@
          Even older versions of Lucene used LogDocMergePolicy.
       -->
     <!--
-        <mergePolicyFacory class="solr.TieredMergePolicyFactory">
+        <mergePolicyFactory class="solr.TieredMergePolicyFactory">
           <int name="maxMergeAtOnce">10</int>
           <int name="segmentsPerTier">10</int>
         </mergePolicyFactory>

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/47055d56/solr/contrib/morphlines-core/src/test-files/solr/minimr/conf/solrconfig.xml
----------------------------------------------------------------------
diff --git a/solr/contrib/morphlines-core/src/test-files/solr/minimr/conf/solrconfig.xml b/solr/contrib/morphlines-core/src/test-files/solr/minimr/conf/solrconfig.xml
index 679f2c9..c6e08ac 100644
--- a/solr/contrib/morphlines-core/src/test-files/solr/minimr/conf/solrconfig.xml
+++ b/solr/contrib/morphlines-core/src/test-files/solr/minimr/conf/solrconfig.xml
@@ -180,7 +180,7 @@
          Even older versions of Lucene used LogDocMergePolicy.
       -->
     <!--
-        <mergePolicyFacory class="solr.TieredMergePolicyFactory">
+        <mergePolicyFactory class="solr.TieredMergePolicyFactory">
           <int name="maxMergeAtOnce">10</int>
           <int name="segmentsPerTier">10</int>
         </mergePolicyFactory>

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/47055d56/solr/contrib/morphlines-core/src/test-files/solr/mrunit/conf/solrconfig.xml
----------------------------------------------------------------------
diff --git a/solr/contrib/morphlines-core/src/test-files/solr/mrunit/conf/solrconfig.xml b/solr/contrib/morphlines-core/src/test-files/solr/mrunit/conf/solrconfig.xml
index 98ba3d1..8f8f9fa 100644
--- a/solr/contrib/morphlines-core/src/test-files/solr/mrunit/conf/solrconfig.xml
+++ b/solr/contrib/morphlines-core/src/test-files/solr/mrunit/conf/solrconfig.xml
@@ -182,7 +182,7 @@
          Even older versions of Lucene used LogDocMergePolicy.
       -->
     <!--
-        <mergePolicyFacory class="solr.TieredMergePolicyFactory">
+        <mergePolicyFactory class="solr.TieredMergePolicyFactory">
           <int name="maxMergeAtOnce">10</int>
           <int name="segmentsPerTier">10</int>
         </mergePolicyFactory>

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/47055d56/solr/contrib/morphlines-core/src/test-files/solr/solrcelltest/collection1/conf/solrconfig.xml
----------------------------------------------------------------------
diff --git a/solr/contrib/morphlines-core/src/test-files/solr/solrcelltest/collection1/conf/solrconfig.xml b/solr/contrib/morphlines-core/src/test-files/solr/solrcelltest/collection1/conf/solrconfig.xml
index ebae3a7..0dc02d9 100644
--- a/solr/contrib/morphlines-core/src/test-files/solr/solrcelltest/collection1/conf/solrconfig.xml
+++ b/solr/contrib/morphlines-core/src/test-files/solr/solrcelltest/collection1/conf/solrconfig.xml
@@ -165,7 +165,7 @@
          Even older versions of Lucene used LogDocMergePolicy.
       -->
     <!--
-        <mergePolicyFacory class="solr.TieredMergePolicyFactory">
+        <mergePolicyFactory class="solr.TieredMergePolicyFactory">
           <int name="maxMergeAtOnce">10</int>
           <int name="segmentsPerTier">10</int>
         </mergePolicyFactory>

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/47055d56/solr/contrib/morphlines-core/src/test-files/solr/solrcloud/conf/solrconfig.xml
----------------------------------------------------------------------
diff --git a/solr/contrib/morphlines-core/src/test-files/solr/solrcloud/conf/solrconfig.xml b/solr/contrib/morphlines-core/src/test-files/solr/solrcloud/conf/solrconfig.xml
index 559adef..b26268e 100644
--- a/solr/contrib/morphlines-core/src/test-files/solr/solrcloud/conf/solrconfig.xml
+++ b/solr/contrib/morphlines-core/src/test-files/solr/solrcloud/conf/solrconfig.xml
@@ -183,7 +183,7 @@
          Even older versions of Lucene used LogDocMergePolicy.
       -->
     <!--
-        <mergePolicyFacory class="solr.TieredMergePolicyFactory">
+        <mergePolicyFactory class="solr.TieredMergePolicyFactory">
           <int name="maxMergeAtOnce">10</int>
           <int name="segmentsPerTier">10</int>
         </mergePolicyFactory>

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/47055d56/solr/example/example-DIH/solr/db/conf/solrconfig.xml
----------------------------------------------------------------------
diff --git a/solr/example/example-DIH/solr/db/conf/solrconfig.xml b/solr/example/example-DIH/solr/db/conf/solrconfig.xml
index e980f6b..5c0f3df 100644
--- a/solr/example/example-DIH/solr/db/conf/solrconfig.xml
+++ b/solr/example/example-DIH/solr/db/conf/solrconfig.xml
@@ -205,7 +205,7 @@
          Even older versions of Lucene used LogDocMergePolicy.
      -->
     <!--
-        <mergePolicyFacory class="solr.TieredMergePolicyFactory">
+        <mergePolicyFactory class="solr.TieredMergePolicyFactory">
           <int name="maxMergeAtOnce">10</int>
           <int name="segmentsPerTier">10</int>
         </mergePolicyFactory>

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/47055d56/solr/example/example-DIH/solr/mail/conf/solrconfig.xml
----------------------------------------------------------------------
diff --git a/solr/example/example-DIH/solr/mail/conf/solrconfig.xml b/solr/example/example-DIH/solr/mail/conf/solrconfig.xml
index 304cbd5..94c5a28 100644
--- a/solr/example/example-DIH/solr/mail/conf/solrconfig.xml
+++ b/solr/example/example-DIH/solr/mail/conf/solrconfig.xml
@@ -208,7 +208,7 @@
          Even older versions of Lucene used LogDocMergePolicy.
      -->
     <!--
-        <mergePolicyFacory class="solr.TieredMergePolicyFactory">
+        <mergePolicyFactory class="solr.TieredMergePolicyFactory">
           <int name="maxMergeAtOnce">10</int>
           <int name="segmentsPerTier">10</int>
         </mergePolicyFactory>

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/47055d56/solr/example/example-DIH/solr/rss/conf/solrconfig.xml
----------------------------------------------------------------------
diff --git a/solr/example/example-DIH/solr/rss/conf/solrconfig.xml b/solr/example/example-DIH/solr/rss/conf/solrconfig.xml
index 99003e4..5f0bbaf 100644
--- a/solr/example/example-DIH/solr/rss/conf/solrconfig.xml
+++ b/solr/example/example-DIH/solr/rss/conf/solrconfig.xml
@@ -205,7 +205,7 @@
          Even older versions of Lucene used LogDocMergePolicy.
       -->
     <!--
-        <mergePolicyFacory class="solr.TieredMergePolicyFactory">
+        <mergePolicyFactory class="solr.TieredMergePolicyFactory">
           <int name="maxMergeAtOnce">10</int>
           <int name="segmentsPerTier">10</int>
         </mergePolicyFactory>

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/47055d56/solr/example/example-DIH/solr/solr/conf/solrconfig.xml
----------------------------------------------------------------------
diff --git a/solr/example/example-DIH/solr/solr/conf/solrconfig.xml b/solr/example/example-DIH/solr/solr/conf/solrconfig.xml
index c1f2a09..ff16a28 100644
--- a/solr/example/example-DIH/solr/solr/conf/solrconfig.xml
+++ b/solr/example/example-DIH/solr/solr/conf/solrconfig.xml
@@ -205,7 +205,7 @@
          Even older versions of Lucene used LogDocMergePolicy.
       -->
     <!--
-        <mergePolicyFacory class="solr.TieredMergePolicyFactory">
+        <mergePolicyFactory class="solr.TieredMergePolicyFactory">
           <int name="maxMergeAtOnce">10</int>
           <int name="segmentsPerTier">10</int>
         </mergePolicyFactory>

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/47055d56/solr/example/example-DIH/solr/tika/conf/solrconfig.xml
----------------------------------------------------------------------
diff --git a/solr/example/example-DIH/solr/tika/conf/solrconfig.xml b/solr/example/example-DIH/solr/tika/conf/solrconfig.xml
index c336510..947646e 100644
--- a/solr/example/example-DIH/solr/tika/conf/solrconfig.xml
+++ b/solr/example/example-DIH/solr/tika/conf/solrconfig.xml
@@ -206,7 +206,7 @@
          Even older versions of Lucene used LogDocMergePolicy.
       -->
     <!--
-        <mergePolicyFacory class="solr.TieredMergePolicyFactory">
+        <mergePolicyFactory class="solr.TieredMergePolicyFactory">
           <int name="maxMergeAtOnce">10</int>
           <int name="segmentsPerTier">10</int>
         </mergePolicyFactory>

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/47055d56/solr/example/files/conf/solrconfig.xml
----------------------------------------------------------------------
diff --git a/solr/example/files/conf/solrconfig.xml b/solr/example/files/conf/solrconfig.xml
index 7580f25..ddc80a9 100644
--- a/solr/example/files/conf/solrconfig.xml
+++ b/solr/example/files/conf/solrconfig.xml
@@ -190,7 +190,7 @@
          Even older versions of Lucene used LogDocMergePolicy.
       -->
     <!--
-        <mergePolicyFacory class="solr.TieredMergePolicyFactory">
+        <mergePolicyFactory class="solr.TieredMergePolicyFactory">
           <int name="maxMergeAtOnce">10</int>
           <int name="segmentsPerTier">10</int>
         </mergePolicyFactory>


[2/2] lucene-solr git commit: SOLR-8621: WrapperMergePolicyFactory logic tweaks

Posted by cp...@apache.org.
SOLR-8621: WrapperMergePolicyFactory logic tweaks

 * fix so that getMergePolicy() can now be called more than once
 * added WrapperMergePolicyFactoryTest.testUpgradeIndexMergePolicyFactory()
 * account for overlap between wrapping and wrapped setters (and disallow it)
** illustration:
   <mergePolicyFactory class="UpgradeMergePolicyFactory">
      <int name="noCFSRatio">0.24</int>
      <str name="wrapped.prefix">mergePolicy</str>
                      <str name="mergePolicy.class">TieredMergePolicyFactory</str>
                      <int name="mergePolicy.noCFSRatio">0.42</int>
   </mergePolicyFactory>
** implementation details: the wrapping MP's setter calls the wrapped MP's setter and in the current code the wrapping MP's value prevails i.e. the 0.24 value in the illustration since the wrapped MP is constructed before the wrapping MP. an end-user however might reasonably assume that the wrapped MP's 0.42 value will prevail. at best configuring the same setter twice within the same overall <mergePolicyFactory> element is ambiguous and so the code now disallows it.


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

Branch: refs/heads/branch_5_5
Commit: 3f06f9a76f97203445ff9b35306ec0dcda59e0d8
Parents: 47055d5
Author: Christine Poerschke <cp...@apache.org>
Authored: Wed Feb 10 22:19:06 2016 +0000
Committer: Christine Poerschke <cp...@apache.org>
Committed: Thu Feb 11 13:10:28 2016 +0000

----------------------------------------------------------------------
 .../solr/index/WrapperMergePolicyFactory.java   | 25 +++++++++---
 .../index/WrapperMergePolicyFactoryTest.java    | 43 ++++++++++++++++++++
 2 files changed, 62 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/3f06f9a7/solr/core/src/java/org/apache/solr/index/WrapperMergePolicyFactory.java
----------------------------------------------------------------------
diff --git a/solr/core/src/java/org/apache/solr/index/WrapperMergePolicyFactory.java b/solr/core/src/java/org/apache/solr/index/WrapperMergePolicyFactory.java
index 24ba237..61088a8 100644
--- a/solr/core/src/java/org/apache/solr/index/WrapperMergePolicyFactory.java
+++ b/solr/core/src/java/org/apache/solr/index/WrapperMergePolicyFactory.java
@@ -16,7 +16,9 @@
  */
 package org.apache.solr.index;
 
+import java.util.HashSet;
 import java.util.Iterator;
+import java.util.Set;
 
 import org.apache.lucene.index.MergePolicy;
 import org.apache.solr.core.SolrResourceLoader;
@@ -34,10 +36,26 @@ public abstract class WrapperMergePolicyFactory extends MergePolicyFactory {
   static final String WRAPPED_PREFIX = "wrapped.prefix"; // not private so that test(s) can use it
 
   private final MergePolicyFactoryArgs wrappedMergePolicyArgs;
+  private final String wrappedMergePolicyClassName;
 
   protected WrapperMergePolicyFactory(SolrResourceLoader resourceLoader, MergePolicyFactoryArgs args, IndexSchema schema) {
     super(resourceLoader, args, schema);
     wrappedMergePolicyArgs = filterWrappedMergePolicyFactoryArgs();
+    if (wrappedMergePolicyArgs == null) {
+      wrappedMergePolicyClassName = null;
+    } else {
+      wrappedMergePolicyClassName = (String) wrappedMergePolicyArgs.remove(CLASS);
+      if (wrappedMergePolicyClassName == null) {
+        throw new IllegalArgumentException("Class name not defined for wrapped MergePolicyFactory!");
+      }
+    }
+    if (wrappedMergePolicyArgs != null) {
+      final Set<String> overshadowedWrappedMergePolicyArgs = new HashSet<>(wrappedMergePolicyArgs.keys());
+      overshadowedWrappedMergePolicyArgs.retainAll(args.keys());
+      if (!overshadowedWrappedMergePolicyArgs.isEmpty()) {
+        throw new IllegalArgumentException("Wrapping and wrapped merge policy args overlap! "+overshadowedWrappedMergePolicyArgs);
+      }
+    }
   }
 
   /**
@@ -55,13 +73,8 @@ public abstract class WrapperMergePolicyFactory extends MergePolicyFactory {
       return getDefaultWrappedMergePolicy();
     }
 
-    final String className = (String) wrappedMergePolicyArgs.remove(CLASS);
-    if (className == null) {
-      throw new IllegalArgumentException("Class name not defined for wrapped MergePolicyFactory!");
-    }
-
     final MergePolicyFactory mpf = resourceLoader.newInstance(
-        className,
+        wrappedMergePolicyClassName,
         MergePolicyFactory.class,
         NO_SUB_PACKAGES,
         new Class[] {SolrResourceLoader.class, MergePolicyFactoryArgs.class, IndexSchema.class},

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/3f06f9a7/solr/core/src/test/org/apache/solr/index/WrapperMergePolicyFactoryTest.java
----------------------------------------------------------------------
diff --git a/solr/core/src/test/org/apache/solr/index/WrapperMergePolicyFactoryTest.java b/solr/core/src/test/org/apache/solr/index/WrapperMergePolicyFactoryTest.java
index cd904f5..e4c7b3d 100644
--- a/solr/core/src/test/org/apache/solr/index/WrapperMergePolicyFactoryTest.java
+++ b/solr/core/src/test/org/apache/solr/index/WrapperMergePolicyFactoryTest.java
@@ -19,6 +19,7 @@ package org.apache.solr.index;
 import org.apache.lucene.index.MergePolicy;
 import org.apache.lucene.index.NoMergePolicy;
 import org.apache.lucene.index.TieredMergePolicy;
+import org.apache.lucene.index.UpgradeIndexMergePolicy;
 import org.apache.solr.SolrTestCaseJ4;
 import org.apache.solr.core.SolrResourceLoader;
 import org.apache.solr.schema.IndexSchema;
@@ -68,6 +69,48 @@ public class WrapperMergePolicyFactoryTest extends SolrTestCaseJ4 {
     assertEquals("maxMergedSegmentMB", testMaxMergedSegmentMB, tmp.getMaxMergedSegmentMB(), 0.0d);
   }
 
+  public void testUpgradeIndexMergePolicyFactory() {
+    final int N = 10;
+    final Double wrappingNoCFSRatio = random().nextBoolean() ? null : random().nextInt(N+1)/((double)N); // must be: 0.0 <= value <= 1.0
+    final Double wrappedNoCFSRatio  = random().nextBoolean() ? null : random().nextInt(N+1)/((double)N); // must be: 0.0 <= value <= 1.0
+    implTestUpgradeIndexMergePolicyFactory(wrappingNoCFSRatio, wrappedNoCFSRatio);
+  }
+
+  private void implTestUpgradeIndexMergePolicyFactory(Double wrappingNoCFSRatio, Double wrappedNoCFSRatio) {
+    final MergePolicyFactoryArgs args = new MergePolicyFactoryArgs();
+    if (wrappingNoCFSRatio != null) {
+      args.add("noCFSRatio", wrappingNoCFSRatio); // noCFSRatio for the wrapping merge policy
+    }
+    args.add(WrapperMergePolicyFactory.WRAPPED_PREFIX, "wrapped");
+    args.add("wrapped.class", TieredMergePolicyFactory.class.getName());
+    if (wrappedNoCFSRatio != null) {
+      args.add("wrapped.noCFSRatio", wrappedNoCFSRatio); // noCFSRatio for the wrapped merge policy
+    }
+
+    MergePolicyFactory mpf;
+    try {
+      mpf = new UpgradeIndexMergePolicyFactory(resourceLoader, args, null);
+      assertFalse("Should only reach here if wrapping and wrapped args don't overlap!",
+          (wrappingNoCFSRatio != null && wrappedNoCFSRatio != null));
+
+      for (int ii=1; ii<=2; ++ii) { // it should be okay to call getMergePolicy() more than once
+        final MergePolicy mp = mpf.getMergePolicy();
+        if (wrappingNoCFSRatio != null) {
+          assertEquals("#"+ii+" wrappingNoCFSRatio", wrappingNoCFSRatio.doubleValue(), mp.getNoCFSRatio(), 0.0d);
+        }
+        if (wrappedNoCFSRatio != null) {
+          assertEquals("#"+ii+" wrappedNoCFSRatio", wrappedNoCFSRatio.doubleValue(), mp.getNoCFSRatio(), 0.0d);
+        }
+        assertSame(mp.getClass(), UpgradeIndexMergePolicy.class);
+      }
+
+    } catch (IllegalArgumentException iae) {
+      assertEquals("Wrapping and wrapped merge policy args overlap! [noCFSRatio]", iae.getMessage());
+      assertTrue("Should only reach here if wrapping and wrapped args do overlap!",
+          (wrappingNoCFSRatio != null && wrappedNoCFSRatio != null));
+    }
+  }
+
   private static class DefaultingWrapperMergePolicyFactory extends WrapperMergePolicyFactory {
 
     DefaultingWrapperMergePolicyFactory(SolrResourceLoader resourceLoader, MergePolicyFactoryArgs wrapperArgs, IndexSchema schema) {