Re: Adding DocExpirationUpdateProcessorFactory causes "Overlapping onDeckSearchers" warnings

2016-12-09 Thread Chris Hostetter

: > If you are seeing an increase in "Overlapping onDeckSearchers" when using 
: > DocExpirationUpdateProcessorFactory, it's becuase you actaully have docs 
: > expiring quite frequently relative to the autoDeletePeriodSeconds and 
: > the amount of time needed to warm each of the new searchers.
: > 
: > if ou don't want the searchers to be re-opened so frequently, just 
: > increase the autoDeletePeriodSeconds. 
: 
: But if I increase the period, then it'll have even more docs that have
: expired, and shouldn't that make the amount of time needed to warm the new
: searcher even longer?

Not to the point of being significant in any practical sense ...

In crude generalizations: the largest overhead in auto-warming is the 
number of queries (ie: the size of the cache), and the main overhead on a 
per query basis is the number of docs that match that query.

So unless you're expiring (and replacing!) the majority of documents 
in your index every X seconds, but you only care about opening a new 
searcher every X*2 seconds, you shouldn't notice any obserable differnece 
in the time needed to do the warming if you only delete every X*2 seconds.



-Hoss
http://www.lucidworks.com/


Re: Adding DocExpirationUpdateProcessorFactory causes "Overlapping onDeckSearchers" warnings

2016-12-09 Thread Brent
Chris Hostetter-3 wrote
> If you are seeing an increase in "Overlapping onDeckSearchers" when using 
> DocExpirationUpdateProcessorFactory, it's becuase you actaully have docs 
> expiring quite frequently relative to the autoDeletePeriodSeconds and 
> the amount of time needed to warm each of the new searchers.
> 
> if ou don't want the searchers to be re-opened so frequently, just 
> increase the autoDeletePeriodSeconds. 

But if I increase the period, then it'll have even more docs that have
expired, and shouldn't that make the amount of time needed to warm the new
searcher even longer?



--
View this message in context: 
http://lucene.472066.n3.nabble.com/Adding-DocExpirationUpdateProcessorFactory-causes-Overlapping-onDeckSearchers-warnings-tp4309155p4309175.html
Sent from the Solr - User mailing list archive at Nabble.com.


Re: Adding DocExpirationUpdateProcessorFactory causes "Overlapping onDeckSearchers" warnings

2016-12-09 Thread Chris Hostetter

: bq: ...is it triggering a commit every 30 seconds, because that's what
: I have the autoDeletePeriodSeconds set to

yes a commit is triggered each time a delete is fired.

: There's a note in the code about making the commits optional, it seems
: fair to raise a JIRA about implementing this. Patches even more
: welcome ;).

No, actaully the Note in the code is about wether or not there should be 
an option to force a *HARD* commits.

The fact that there is no option prevent any commit at all was a concious 
choice:

a) the processor is basically useless unless something does a commit -- 
there's no point in doing deletes every 30 seconds if we only want to 
bother having a new searcher every 60 seconds -- it just means we're doing 
twice the work w/o any added benefit.

b) a softCommit+openSeacher is a No-Op unless there is soemthing to 
actauly commit. (see SOLR-5783 and TestIndexSearcher.testReopen)


If you are seeing an increase in "Overlapping onDeckSearchers" when using 
DocExpirationUpdateProcessorFactory, it's becuase you actaully have docs 
expiring quite frequently relative to the autoDeletePeriodSeconds and 
the amount of time needed to warm each of the new searchers.

if ou don't want the searchers to be re-opened so frequently, just 
increase the autoDeletePeriodSeconds. 


-Hoss
http://www.lucidworks.com/


Re: Adding DocExpirationUpdateProcessorFactory causes "Overlapping onDeckSearchers" warnings

2016-12-09 Thread Brent
Okay, I created a JIRA ticket
(https://issues.apache.org/jira/servicedesk/agent/SOLR/issue/SOLR-9841) and
will work on a patch.



--
View this message in context: 
http://lucene.472066.n3.nabble.com/Adding-DocExpirationUpdateProcessorFactory-causes-Overlapping-onDeckSearchers-warnings-tp4309155p4309173.html
Sent from the Solr - User mailing list archive at Nabble.com.


Re: Adding DocExpirationUpdateProcessorFactory causes "Overlapping onDeckSearchers" warnings

2016-12-09 Thread Kevin Risden
https://github.com/apache/lucene-solr/blob/master/solr/core/src/java/org/apache/solr/update/processor/DocExpirationUpdateProcessorFactory.java#L407

Based on that it looks like this would definitely trigger additional
commits. Specifically with openSearcher being true.

Not sure the best way around this.

Kevin Risden

On Fri, Dec 9, 2016 at 5:15 PM, Brent <brent.pear...@gmail.com> wrote:

> I'm using Solr Cloud 6.1.0, and my client application is using SolrJ 6.1.0.
>
> Using this Solr config, I get none of the dreaded "PERFORMANCE WARNING:
> Overlapping onDeckSearchers=2" log messages:
> https://dl.dropboxusercontent.com/u/49733981/solrconfig-no_warnings.xml
>
> However, I start getting them frequently after I add an expiration update
> processor to the update request processor chain, as seen in this config (at
> the bottom):
> https://dl.dropboxusercontent.com/u/49733981/solrconfig-warnings.xml
>
> Do I have something configured wrong in the way I've tried to add the
> function of expiring documents? My client application sets the "expire_at"
> field with the date to remove the document being added, so I don't need
> anything on the Solr Cloud side to calculate the expiration date using a
> TTL. I've confirmed that the documents are getting removed as expected
> after
> the TTL duration.
>
> Is it possible that the expiration processor is triggering additional
> commits? Seems like the warning is usually the result of commits happening
> too frequently. If the commit spacing is fine without the expiration
> processor, but not okay when I add it, it seems like maybe each update is
> now triggering a (soft?) commit. Although, that'd actually be crazy and I'm
> sure I'd see a lot more errors if that were the case... is it triggering a
> commit every 30 seconds, because that's what I have the
> autoDeletePeriodSeconds set to? Maybe if I try to offset that a bit from
> the
> 10 second auto soft commit I'm using? Seems like it'd be better (if that is
> the case) if the processor simple didn't have to do a commit when it
> expires
> documents, and instead let the auto commit settings handle that.
>
> Do I still need the line:
>  name="/update">
> when I have the
>  default="true">
> element?
>
>
>
> --
> View this message in context: http://lucene.472066.n3.nabble.com/Adding-
> DocExpirationUpdateProcessorFactory-causes-Overlapping-
> onDeckSearchers-warnings-tp4309155.html
> Sent from the Solr - User mailing list archive at Nabble.com.
>


Re: Adding DocExpirationUpdateProcessorFactory causes "Overlapping onDeckSearchers" warnings

2016-12-09 Thread Erick Erickson
bq: ...is it triggering a commit every 30 seconds, because that's what
I have the autoDeletePeriodSeconds set to


Yep. There's this line from Chris' writeup:

After the deleteByQuery has been executed, a soft commit is also
executed using openSearcher=true so that search results will no longer
see the expired documents.


Assuming your index is changing, you'll indeed open one searcher as a
result of your autocommit and a second as a result of TTL processing.
And they'll overlap sometimes.

There's a note in the code about making the commits optional, it seems
fair to raise a JIRA about implementing this. Patches even more
welcome ;).

Meanwhile, this performance _warning_ is benign. That is, the new
searcher is indeed opened. If you see something like "Error opening
new searcher. exceeded limit of maxWarmingSearchers" then the
newest searcher will not be opened (although the next searcher opened
will pick up any changes).

Note that there's no particular point in bumping the max warming
searchers in solrconfig.xml since the warning message is dumped
whenever there are > 1 warming searchers. If you get the "error
opening" message it's a more open question though.

So your choices are:
1> just ignore it
2> contribute a patch
3> increase the interval. That'll reduce the number of times you see
this warning, but won't eliminate them all.

Best,
Erick


On Fri, Dec 9, 2016 at 3:15 PM, Brent <brent.pear...@gmail.com> wrote:
> I'm using Solr Cloud 6.1.0, and my client application is using SolrJ 6.1.0.
>
> Using this Solr config, I get none of the dreaded "PERFORMANCE WARNING:
> Overlapping onDeckSearchers=2" log messages:
> https://dl.dropboxusercontent.com/u/49733981/solrconfig-no_warnings.xml
>
> However, I start getting them frequently after I add an expiration update
> processor to the update request processor chain, as seen in this config (at
> the bottom):
> https://dl.dropboxusercontent.com/u/49733981/solrconfig-warnings.xml
>
> Do I have something configured wrong in the way I've tried to add the
> function of expiring documents? My client application sets the "expire_at"
> field with the date to remove the document being added, so I don't need
> anything on the Solr Cloud side to calculate the expiration date using a
> TTL. I've confirmed that the documents are getting removed as expected after
> the TTL duration.
>
> Is it possible that the expiration processor is triggering additional
> commits? Seems like the warning is usually the result of commits happening
> too frequently. If the commit spacing is fine without the expiration
> processor, but not okay when I add it, it seems like maybe each update is
> now triggering a (soft?) commit. Although, that'd actually be crazy and I'm
> sure I'd see a lot more errors if that were the case... is it triggering a
> commit every 30 seconds, because that's what I have the
> autoDeletePeriodSeconds set to? Maybe if I try to offset that a bit from the
> 10 second auto soft commit I'm using? Seems like it'd be better (if that is
> the case) if the processor simple didn't have to do a commit when it expires
> documents, and instead let the auto commit settings handle that.
>
> Do I still need the line:
>  name="/update">
> when I have the
>  default="true">
> element?
>
>
>
> --
> View this message in context: 
> http://lucene.472066.n3.nabble.com/Adding-DocExpirationUpdateProcessorFactory-causes-Overlapping-onDeckSearchers-warnings-tp4309155.html
> Sent from the Solr - User mailing list archive at Nabble.com.


Adding DocExpirationUpdateProcessorFactory causes "Overlapping onDeckSearchers" warnings

2016-12-09 Thread Brent
I'm using Solr Cloud 6.1.0, and my client application is using SolrJ 6.1.0.

Using this Solr config, I get none of the dreaded "PERFORMANCE WARNING:
Overlapping onDeckSearchers=2" log messages:
https://dl.dropboxusercontent.com/u/49733981/solrconfig-no_warnings.xml

However, I start getting them frequently after I add an expiration update
processor to the update request processor chain, as seen in this config (at
the bottom):
https://dl.dropboxusercontent.com/u/49733981/solrconfig-warnings.xml

Do I have something configured wrong in the way I've tried to add the
function of expiring documents? My client application sets the "expire_at"
field with the date to remove the document being added, so I don't need
anything on the Solr Cloud side to calculate the expiration date using a
TTL. I've confirmed that the documents are getting removed as expected after
the TTL duration.

Is it possible that the expiration processor is triggering additional
commits? Seems like the warning is usually the result of commits happening
too frequently. If the commit spacing is fine without the expiration
processor, but not okay when I add it, it seems like maybe each update is
now triggering a (soft?) commit. Although, that'd actually be crazy and I'm
sure I'd see a lot more errors if that were the case... is it triggering a
commit every 30 seconds, because that's what I have the
autoDeletePeriodSeconds set to? Maybe if I try to offset that a bit from the
10 second auto soft commit I'm using? Seems like it'd be better (if that is
the case) if the processor simple didn't have to do a commit when it expires
documents, and instead let the auto commit settings handle that. 

Do I still need the line:

when I have the 

element?



--
View this message in context: 
http://lucene.472066.n3.nabble.com/Adding-DocExpirationUpdateProcessorFactory-causes-Overlapping-onDeckSearchers-warnings-tp4309155.html
Sent from the Solr - User mailing list archive at Nabble.com.