You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by th...@apache.org on 2016/09/16 09:58:23 UTC
svn commit: r1761018 - in /jackrabbit/oak/trunk:
oak-core/src/main/java/org/apache/jackrabbit/oak/query/index/
oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/
oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/diffindex/
oak...
Author: thomasm
Date: Fri Sep 16 09:58:23 2016
New Revision: 1761018
URL: http://svn.apache.org/viewvc?rev=1761018&view=rev
Log:
OAK-4815 ReferenceIndex slowdown due to OAK-3403
Modified:
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/index/FilterImpl.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/AsyncIndexUpdateTest.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/diffindex/DiffCollectorTest.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/property/strategy/ContentMirrorStoreStrategyTest.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/query/index/FilterTest.java
jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/query/index/TraversingIndexTest.java
jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexLookupTest.java
jackrabbit/oak/trunk/oak-solr-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/solr/query/SolrIndexLookupTest.java
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/index/FilterImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/index/FilterImpl.java?rev=1761018&r1=1761017&r2=1761018&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/index/FilterImpl.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/query/index/FilterImpl.java Fri Sep 16 09:58:23 2016
@@ -111,8 +111,20 @@ public class FilterImpl implements Filte
private boolean preparing;
// TODO support "order by"
+
+ /**
+ * Create a new filter instance that is used for unit testing. This method
+ * is relatively slow, because it creates a new query engine setting object.
+ * Therefore, it is only to be used for testing. At runtime, the
+ * public constructor should be used instead.
+ *
+ * @return the filter
+ */
+ public static FilterImpl newTestInstance() {
+ return new FilterImpl();
+ }
- public FilterImpl() {
+ private FilterImpl() {
this(null, null, new QueryEngineSettings());
}
Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/AsyncIndexUpdateTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/AsyncIndexUpdateTest.java?rev=1761018&r1=1761017&r2=1761018&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/AsyncIndexUpdateTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/AsyncIndexUpdateTest.java Fri Sep 16 09:58:23 2016
@@ -87,7 +87,7 @@ public class AsyncIndexUpdateTest {
private static Set<String> find(PropertyIndexLookup lookup, String name,
String value) {
- return Sets.newHashSet(lookup.query(new FilterImpl(), name,
+ return Sets.newHashSet(lookup.query(FilterImpl.newTestInstance(), name,
PropertyValues.newString(value)));
}
Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/diffindex/DiffCollectorTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/diffindex/DiffCollectorTest.java?rev=1761018&r1=1761017&r2=1761018&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/diffindex/DiffCollectorTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/diffindex/DiffCollectorTest.java Fri Sep 16 09:58:23 2016
@@ -45,7 +45,7 @@ public class DiffCollectorTest {
UUIDDiffCollector collector = new UUIDDiffCollector(root, after);
- FilterImpl f = new FilterImpl();
+ FilterImpl f = FilterImpl.newTestInstance();
f.restrictProperty("jcr:uuid", Operator.EQUAL,
PropertyValues.newString("abc"));
@@ -71,7 +71,7 @@ public class DiffCollectorTest {
UUIDDiffCollector collector = new UUIDDiffCollector(before, after);
- FilterImpl f = new FilterImpl();
+ FilterImpl f = FilterImpl.newTestInstance();
f.restrictProperty("jcr:uuid", Operator.EQUAL,
PropertyValues.newString("xyz"));
@@ -111,7 +111,7 @@ public class DiffCollectorTest {
UUIDDiffCollector collector = new UUIDDiffCollector(before, after);
- FilterImpl f = new FilterImpl();
+ FilterImpl f = FilterImpl.newTestInstance();
f.restrictProperty("jcr:uuid", Operator.EQUAL, PropertyValues
.newString("ee59b554-76b7-3e27-9fc6-15bda1388894"));
Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/property/strategy/ContentMirrorStoreStrategyTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/property/strategy/ContentMirrorStoreStrategyTest.java?rev=1761018&r1=1761017&r2=1761018&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/property/strategy/ContentMirrorStoreStrategyTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/property/strategy/ContentMirrorStoreStrategyTest.java Fri Sep 16 09:58:23 2016
@@ -211,7 +211,7 @@ public class ContentMirrorStoreStrategyT
final long repoTreeApproxNodeCount = 50000;
final long repoSubPathApproxNodeCount = repoTreeApproxNodeCount /
filteredNodeFactor;
- final FilterImpl filter = new FilterImpl();
+ final FilterImpl filter = FilterImpl.newTestInstance();
filter.restrictPath("/" + subPathName,
Filter.PathRestriction.ALL_CHILDREN);
Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/query/index/FilterTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/query/index/FilterTest.java?rev=1761018&r1=1761017&r2=1761018&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/query/index/FilterTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/query/index/FilterTest.java Fri Sep 16 09:58:23 2016
@@ -42,7 +42,7 @@ public class FilterTest {
PropertyValue one = PropertyValues.newString("1");
PropertyValue two = PropertyValues.newString("2");
- FilterImpl f = new FilterImpl();
+ FilterImpl f = FilterImpl.newTestInstance();
assertTrue(null == f.getPropertyRestriction("x"));
f.restrictProperty("x", Operator.LESS_OR_EQUAL, two);
assertEquals(
@@ -79,7 +79,7 @@ public class FilterTest {
"Filter(, path=*, property=[x=[..2], [1.., (1.., ..2), 2]])",
f.toString());
- f = new FilterImpl();
+ f = FilterImpl.newTestInstance();
f.restrictProperty("x", Operator.EQUAL, one);
assertEquals(
"Filter(, path=*, property=[x=[1]])",
@@ -107,7 +107,7 @@ public class FilterTest {
"Filter(, path=*, property=[x=[1, [1.., ..1], (1..]])",
f.toString());
- f = new FilterImpl();
+ f = FilterImpl.newTestInstance();
f.restrictProperty("x", Operator.EQUAL, one);
assertEquals(
"Filter(, path=*, property=[x=[1]])",
@@ -120,7 +120,7 @@ public class FilterTest {
"Filter(, path=*, property=[x=[1, ..1)]])",
f.toString());
- f = new FilterImpl();
+ f = FilterImpl.newTestInstance();
f.restrictProperty("x", Operator.NOT_EQUAL, null);
assertEquals(
"Filter(, path=*, property=[x=[is not null]])",
@@ -164,11 +164,11 @@ public class FilterTest {
.nextInt(Filter.PathRestriction.values().length)];
Filter.PathRestriction r2 = Filter.PathRestriction.values()[r
.nextInt(Filter.PathRestriction.values().length)];
- FilterImpl f1 = new FilterImpl();
+ FilterImpl f1 = FilterImpl.newTestInstance();
f1.restrictPath(p1, r1);
- FilterImpl f2 = new FilterImpl();
+ FilterImpl f2 = FilterImpl.newTestInstance();
f2.restrictPath(p2, r2);
- FilterImpl fc = new FilterImpl();
+ FilterImpl fc = FilterImpl.newTestInstance();
fc.restrictPath(p1, r1);
fc.restrictPath(p2, r2);
int tooMany = 0;
@@ -178,7 +178,7 @@ public class FilterTest {
if (expected == got) {
// good
} else if (expected && !got) {
- fc = new FilterImpl();
+ fc = FilterImpl.newTestInstance();
fc.restrictPath(p1, r1);
fc.restrictPath(p2, r2);
fail("not matched: " + p1 + "/" + r1.name() + " && " + p2
@@ -197,7 +197,7 @@ public class FilterTest {
@Test
public void pathRestrictions() throws Exception {
- FilterImpl f = new FilterImpl();
+ FilterImpl f = FilterImpl.newTestInstance();
assertEquals("/", f.getPath());
assertEquals(Filter.PathRestriction.NO_RESTRICTION,
f.getPathRestriction());
@@ -206,7 +206,7 @@ public class FilterTest {
f.restrictPath("/test2", Filter.PathRestriction.ALL_CHILDREN);
assertTrue(f.isAlwaysFalse());
- f = new FilterImpl();
+ f = FilterImpl.newTestInstance();
f.restrictPath("/test", Filter.PathRestriction.ALL_CHILDREN);
assertEquals("/test", f.getPath());
assertEquals(Filter.PathRestriction.ALL_CHILDREN,
@@ -219,7 +219,7 @@ public class FilterTest {
assertEquals("/test/x/y", f.getPath());
assertEquals(Filter.PathRestriction.PARENT, f.getPathRestriction());
- f = new FilterImpl();
+ f = FilterImpl.newTestInstance();
f.restrictPath("/test", Filter.PathRestriction.DIRECT_CHILDREN);
f.restrictPath("/test/x/y", Filter.PathRestriction.PARENT);
assertEquals("/test/x/y", f.getPath());
@@ -227,7 +227,7 @@ public class FilterTest {
f.restrictPath("/test/y", Filter.PathRestriction.DIRECT_CHILDREN);
assertTrue(f.isAlwaysFalse());
- f = new FilterImpl();
+ f = FilterImpl.newTestInstance();
f.restrictPath("/test/x/y", Filter.PathRestriction.PARENT);
f.restrictPath("/test/x", Filter.PathRestriction.EXACT);
assertEquals("/test/x", f.getPath());
@@ -235,12 +235,12 @@ public class FilterTest {
f.restrictPath("/test/y", Filter.PathRestriction.EXACT);
assertTrue(f.isAlwaysFalse());
- f = new FilterImpl();
+ f = FilterImpl.newTestInstance();
f.restrictPath("/test", Filter.PathRestriction.ALL_CHILDREN);
f.restrictPath("/test", Filter.PathRestriction.PARENT);
assertTrue(f.isAlwaysFalse());
- f = new FilterImpl();
+ f = FilterImpl.newTestInstance();
f.restrictPath("/test/x", Filter.PathRestriction.PARENT);
f.restrictPath("/test", Filter.PathRestriction.ALL_CHILDREN);
assertEquals("/test/x", f.getPath());
@@ -248,23 +248,23 @@ public class FilterTest {
f.restrictPath("/test/x", Filter.PathRestriction.ALL_CHILDREN);
assertTrue(f.isAlwaysFalse());
- f = new FilterImpl();
+ f = FilterImpl.newTestInstance();
f.restrictPath("/test", Filter.PathRestriction.ALL_CHILDREN);
f.restrictPath("/test", Filter.PathRestriction.EXACT);
assertTrue(f.isAlwaysFalse());
- f = new FilterImpl();
+ f = FilterImpl.newTestInstance();
f.restrictPath("/test", Filter.PathRestriction.DIRECT_CHILDREN);
f.restrictPath("/test/x", Filter.PathRestriction.EXACT);
assertEquals("/test/x", f.getPath());
assertEquals(Filter.PathRestriction.EXACT, f.getPathRestriction());
- f = new FilterImpl();
+ f = FilterImpl.newTestInstance();
f.restrictPath("/test", Filter.PathRestriction.DIRECT_CHILDREN);
f.restrictPath("/test/x/y", Filter.PathRestriction.EXACT);
assertTrue(f.isAlwaysFalse());
- f = new FilterImpl();
+ f = FilterImpl.newTestInstance();
f.restrictPath("/test/x", Filter.PathRestriction.PARENT);
f.restrictPath("/", Filter.PathRestriction.ALL_CHILDREN);
assertEquals("/test/x", f.getPath());
@@ -272,7 +272,7 @@ public class FilterTest {
f.restrictPath("/test/y", Filter.PathRestriction.EXACT);
assertTrue(f.isAlwaysFalse());
- f = new FilterImpl();
+ f = FilterImpl.newTestInstance();
f.restrictPath("/test", Filter.PathRestriction.DIRECT_CHILDREN);
assertEquals("/test", f.getPath());
assertEquals(Filter.PathRestriction.DIRECT_CHILDREN,
@@ -291,7 +291,7 @@ public class FilterTest {
f.restrictPath("/test2", Filter.PathRestriction.ALL_CHILDREN);
assertTrue(f.isAlwaysFalse());
- f = new FilterImpl();
+ f = FilterImpl.newTestInstance();
f.restrictPath("/test/x", Filter.PathRestriction.EXACT);
assertEquals("/test/x", f.getPath());
assertEquals(Filter.PathRestriction.EXACT, f.getPathRestriction());
@@ -301,7 +301,7 @@ public class FilterTest {
f.restrictPath("/test/y", Filter.PathRestriction.DIRECT_CHILDREN);
assertTrue(f.isAlwaysFalse());
- f = new FilterImpl();
+ f = FilterImpl.newTestInstance();
f.restrictPath("/test/x/y", Filter.PathRestriction.PARENT);
assertEquals("/test/x/y", f.getPath());
assertEquals(Filter.PathRestriction.PARENT, f.getPathRestriction());
Modified: jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/query/index/TraversingIndexTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/query/index/TraversingIndexTest.java?rev=1761018&r1=1761017&r2=1761018&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/query/index/TraversingIndexTest.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/test/java/org/apache/jackrabbit/oak/query/index/TraversingIndexTest.java Fri Sep 16 09:58:23 2016
@@ -53,7 +53,7 @@ public class TraversingIndexTest {
TraversingIndex t = new TraversingIndex();
- FilterImpl f = new FilterImpl();
+ FilterImpl f = FilterImpl.newTestInstance();
f.setPath("/");
Cursor c = t.query(f, root);
Modified: jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexLookupTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexLookupTest.java?rev=1761018&r1=1761017&r2=1761018&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexLookupTest.java (original)
+++ jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexLookupTest.java Fri Sep 16 09:58:23 2016
@@ -44,7 +44,7 @@ public class LuceneIndexLookupTest {
newLuceneIndexDefinition(index, "l2", of(TYPENAME_STRING));
LuceneIndexLookup lookup = new LuceneIndexLookup(builder.getNodeState());
- FilterImpl f = new FilterImpl();
+ FilterImpl f = FilterImpl.newTestInstance();
f.restrictPath("/", Filter.PathRestriction.EXACT);
assertEquals(of("/oak:index/l1", "/oak:index/l2"),
lookup.collectIndexNodePaths(f));
@@ -62,7 +62,7 @@ public class LuceneIndexLookupTest {
newLuceneIndexDefinition(index, "l3", of(TYPENAME_STRING));
LuceneIndexLookup lookup = new LuceneIndexLookup(builder.getNodeState());
- FilterImpl f = new FilterImpl();
+ FilterImpl f = FilterImpl.newTestInstance();
f.restrictPath("/a", Filter.PathRestriction.EXACT);
assertEquals(of("/oak:index/l1", "/a/oak:index/l2"),
lookup.collectIndexNodePaths(f));
Modified: jackrabbit/oak/trunk/oak-solr-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/solr/query/SolrIndexLookupTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-solr-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/solr/query/SolrIndexLookupTest.java?rev=1761018&r1=1761017&r2=1761018&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-solr-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/solr/query/SolrIndexLookupTest.java (original)
+++ jackrabbit/oak/trunk/oak-solr-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/solr/query/SolrIndexLookupTest.java Fri Sep 16 09:58:23 2016
@@ -53,7 +53,7 @@ public class SolrIndexLookupTest {
newSolrIndexDefinition(index, "l2", of("foo"));
SolrIndexLookup lookup = new SolrIndexLookup(builder.getNodeState());
- FilterImpl f = new FilterImpl();
+ FilterImpl f = FilterImpl.newTestInstance();
f.restrictPath("/", Filter.PathRestriction.EXACT);
assertEquals(of("/oak:index/l1", "/oak:index/l2"),
lookup.collectIndexNodePaths(f));
@@ -71,7 +71,7 @@ public class SolrIndexLookupTest {
newSolrIndexDefinition(index, "l3", of("foo"));
SolrIndexLookup lookup = new SolrIndexLookup(builder.getNodeState());
- FilterImpl f = new FilterImpl();
+ FilterImpl f = FilterImpl.newTestInstance();
f.restrictPath("/a", Filter.PathRestriction.EXACT);
assertEquals(of("/oak:index/l1", "/a/oak:index/l2"),
lookup.collectIndexNodePaths(f));