You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by yo...@apache.org on 2015/08/31 18:43:58 UTC
svn commit: r1700276 - in /lucene/dev/trunk: lucene/
lucene/core/src/java/org/apache/lucene/index/ solr/
solr/core/src/java/org/apache/solr/search/
Author: yonik
Date: Mon Aug 31 16:43:57 2015
New Revision: 1700276
URL: http://svn.apache.org/r1700276
Log:
SOLR-7876: exit ExitableDirectoryReader wrapper if timeout is not enabled
Modified:
lucene/dev/trunk/lucene/CHANGES.txt
lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/ExitableDirectoryReader.java
lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/QueryTimeout.java
lucene/dev/trunk/solr/CHANGES.txt
lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/SolrQueryTimeoutImpl.java
Modified: lucene/dev/trunk/lucene/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/CHANGES.txt?rev=1700276&r1=1700275&r2=1700276&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/CHANGES.txt (original)
+++ lucene/dev/trunk/lucene/CHANGES.txt Mon Aug 31 16:43:57 2015
@@ -27,6 +27,10 @@ New Features
length computations, to avoid skew from documents that don't have the field.
(Ahmet Arslan via Robert Muir)
+* SOLR-7876: The QueryTimeout interface now has a isTimeoutEnabled method
+ that can return false to exit from ExitableDirectoryReader wrapping at
+ the point fields() is called. (yonik)
+
API Changes
* LUCENE-3312: The API of oal.document was restructured to
Modified: lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/ExitableDirectoryReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/ExitableDirectoryReader.java?rev=1700276&r1=1700275&r2=1700276&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/ExitableDirectoryReader.java (original)
+++ lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/ExitableDirectoryReader.java Mon Aug 31 16:43:57 2015
@@ -80,7 +80,13 @@ public class ExitableDirectoryReader ext
@Override
public Fields fields() throws IOException {
- return new ExitableFields(super.fields(), queryTimeout);
+ Fields fields = super.fields();
+ if (queryTimeout.isTimeoutEnabled()) {
+ return new ExitableFields(fields, queryTimeout);
+ }
+ else {
+ return fields; // break out of wrapper as soon as possible
+ }
}
@Override
Modified: lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/QueryTimeout.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/QueryTimeout.java?rev=1700276&r1=1700275&r2=1700276&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/QueryTimeout.java (original)
+++ lucene/dev/trunk/lucene/core/src/java/org/apache/lucene/index/QueryTimeout.java Mon Aug 31 16:43:57 2015
@@ -29,5 +29,10 @@ public interface QueryTimeout {
*/
public abstract boolean shouldExit();
+ /** Returns true if timeouts are enabled for this query (i.e. if shouldExit would ever return true) */
+ public default boolean isTimeoutEnabled() {
+ return true;
+ }
+
}
Modified: lucene/dev/trunk/solr/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/CHANGES.txt?rev=1700276&r1=1700275&r2=1700276&view=diff
==============================================================================
--- lucene/dev/trunk/solr/CHANGES.txt (original)
+++ lucene/dev/trunk/solr/CHANGES.txt Mon Aug 31 16:43:57 2015
@@ -65,6 +65,11 @@ New Features
* SOLR-7707: Add StreamExpression Support to RollupStream (Dennis Gove, Joel Bernstein)
+Optimizations
+----------------------
+* SOLR-7876: Speed up queries and operations that use many terms when timeAllowed has not been
+ specified. Speedups of up to 8% were observed. (yonik)
+
Other Changes
----------------------
Modified: lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/SolrQueryTimeoutImpl.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/SolrQueryTimeoutImpl.java?rev=1700276&r1=1700275&r2=1700276&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/SolrQueryTimeoutImpl.java (original)
+++ lucene/dev/trunk/solr/core/src/java/org/apache/solr/search/SolrQueryTimeoutImpl.java Mon Aug 31 16:43:57 2015
@@ -49,6 +49,11 @@ public class SolrQueryTimeoutImpl implem
return timeoutAt.get();
}
+ @Override
+ public boolean isTimeoutEnabled() {
+ return get() != null;
+ }
+
/**
* Return true if a timeoutAt value is set and the current time has exceeded the set timeOut.
*/