[ 
https://issues.apache.org/jira/browse/SOLR-14413?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17182060#comment-17182060
 ] 

John Gallagher commented on SOLR-14413:
---------------------------------------

Thanks [~mdrob] for reviewing! 

I added new documentation for omitHeader, advising against omitting when using 
parameters that can lead to partial results, because the header flag informs 
the interpretation of the result values.

!image-2020-08-21-14-18-36-229.png|width=558,height=180!

I updated timeAllowed documentation as well.

 

I incorporated [~bvd]'s test idea of generating a result set, running it to 
completion, and confirming all documents were found in the correct order, while 
also asserting that at least one partialResults event occurred.

I have generated a new patch, SOLR-14413-jg-update2.patch, and updated my PR: 
[https://github.com/apache/lucene-solr/pull/1436]

 

John

> allow timeAllowed and cursorMark parameters
> -------------------------------------------
>
>                 Key: SOLR-14413
>                 URL: https://issues.apache.org/jira/browse/SOLR-14413
>             Project: Solr
>          Issue Type: Improvement
>          Components: search
>            Reporter: John Gallagher
>            Priority: Minor
>         Attachments: SOLR-14413-bram.patch, SOLR-14413-jg-update1.patch, 
> SOLR-14413.patch, image-2020-08-18-16-56-41-736.png, 
> image-2020-08-18-16-56-59-178.png, image-2020-08-21-14-18-36-229.png, 
> timeallowed_cursormarks_results.txt
>
>          Time Spent: 1h 50m
>  Remaining Estimate: 0h
>
> Ever since cursorMarks were introduced in SOLR-5463 in 2014, cursorMark and 
> timeAllowed parameters were not allowed in combination ("Can not search using 
> both cursorMark and timeAllowed")
> , from [QueryComponent.java|#L359]]:
>  
> {code:java}
>  
>  if (null != rb.getCursorMark() && 0 < timeAllowed) {
>   // fundamentally incompatible
>   throw new SolrException(SolrException.ErrorCode.BAD_REQUEST, "Can not 
> search using both " + CursorMarkParams.CURSOR_MARK_PARAM + " and " + 
> CommonParams.TIME_ALLOWED);
> } {code}
> While theoretically impure to use them in combination, it is often desirable 
> to support cursormarks-style deep paging and attempt to protect Solr nodes 
> from runaway queries using timeAllowed, in the hopes that most of the time, 
> the query completes in the allotted time, and there is no conflict.
>  
> However if the query takes too long, it may be preferable to end the query 
> and protect the Solr node and provide the user with a somewhat inaccurate 
> sorted list. As noted in SOLR-6930, SOLR-5986 and others, timeAllowed is 
> frequently used to prevent runaway load.  In fact, cursorMark and 
> shards.tolerant are allowed in combination, so any argument in favor of 
> purity would be a bit muddied in my opinion.
>  
> This was discussed once in the mailing list that I can find: 
> [https://mail-archives.apache.org/mod_mbox/lucene-solr-user/201506.mbox/%3c5591740b.4080...@elyograg.org%3E]
>  It did not look like there was strong support for preventing the combination.
>  
> I have tested cursorMark and timeAllowed combination together, and even when 
> partial results are returned because the timeAllowed is exceeded, the 
> cursorMark response value is still valid and reasonable.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org
For additional commands, e-mail: issues-h...@lucene.apache.org

Reply via email to