lucene-solr-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Yonik Seeley <yo...@lucidimagination.com>
Subject Re: LRUCache causing locked threads
Date Mon, 15 Jun 2009 19:10:45 GMT
On Mon, Jun 15, 2009 at 2:58 PM, CameronL<cameron.developer@gmail.com> wrote:
> Unfortunately upgrading to 1.4 isn't an option for us at the moment.
>
> Since we're stuck using 1.3, is there anything in particular we need to do
> to prevent these threads from locking (through configuration or something)

Not really.

> or is this sort of expected/unavoidable using 1.3?

Throughput will be less when faceting with LRUCache, but not a lot
less under reasonable loads.  Just because you're seeing threads
blocked on LRUCache doesn't mean it would perform well if it were
lockless.
How many CPU cores do you have on your box, and how many requests
typically execute at the same time?
What's your CPU utilization under load?
Does a single faceting request return in acceptable time when no other
requests are running?

-Yonik
http://www.lucidimagination.com



>
> Yonik Seeley-2 wrote:
>>
>> Solr 1.4 has a cache implementation that's lockless for gets, and
>> faster for gets.  There's a new faceting implementation as well.
>>
>> -Yonik
>> http://www.lucidimagination.com
>>
>> On Mon, Jun 15, 2009 at 2:39 PM, CameronL<cameron.developer@gmail.com>
>> wrote:
>>>
>>> I've searched through the forums and seen a few similar problems to this,
>>> but
>>> nothing that seemed to help much.
>>>
>>> We're running Solr 1.3 on Tomcat 6.0.16 and Java 6.  We've been having
>>> performance problems with our search, causing long query times under
>>> normal
>>> traffic.  We've taken a thread dump and have seen many threads locked or
>>> waiting for LRUCache (see below).  Our cache values are as follows:
>>>
>>> <filterCache class="solr.LRUCache" size="20000" initialSize="10000"
>>> autowarmCount="10000"/>
>>> <queryResultCache class="solr.LRUCache" size="20000" initialSize="10000"
>>> autowarmCount="5000"/>
>>> <documentCache class="solr.LRUCache" size="25000" initialSize="10000"
>>> autowarmCount="0"/>
>>>
>>>
>>> "http-8983-99" daemon prio=10 tid=0x0000002beb3f5800 nid=0x2fb9 waiting
>>> for
>>> monitor entry [0x0000000047ea5000..0x0000000047ea6c30]
>>>   java.lang.Thread.State: BLOCKED (on object monitor)
>>>        at org.apache.solr.search.LRUCache.get(LRUCache.java:130)
>>>        - waiting to lock <0x0000002a9fb94be8> (a
>>> org.apache.solr.search.LRUCache$1)
>>>        at
>>> org.apache.solr.search.SolrIndexSearcher.getPositiveDocSet(SolrIndexSearcher.java:605)
>>>        at
>>> org.apache.solr.search.SolrIndexSearcher.numDocs(SolrIndexSearcher.java:1556)
>>>        at
>>> org.apache.solr.request.SimpleFacets.getFacetTermEnumCounts(SimpleFacets.java:377)
>>>        at
>>> org.apache.solr.request.SimpleFacets.getTermCounts(SimpleFacets.java:156)
>>>        at
>>> org.apache.solr.request.SimpleFacets.getFacetFieldCounts(SimpleFacets.java:182)
>>>        at
>>> org.apache.solr.request.SimpleFacets.getFacetCounts(SimpleFacets.java:96)
>>>        at
>>> org.apache.solr.handler.component.FacetComponent.process(FacetComponent.java:70)
>>>        at
>>> org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:169)
>>>        at
>>> org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:131)
>>>        at org.apache.solr.core.SolrCore.execute(SolrCore.java:1204)
>>>        at
>>> org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:303)
>>>        at
>>> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:232)
>>> "http-8983-83" daemon prio=10 tid=0x0000002bead1a000 nid=0x2f76 waiting
>>> for
>>> monitor entry [0x0000000046e95000..0x0000000046e96c30]
>>>   java.lang.Thread.State: BLOCKED (on object monitor)
>>>        at org.apache.solr.search.LRUCache.get(LRUCache.java:130)
>>>        - locked <0x0000002a9fb94be8> (a
>>> org.apache.solr.search.LRUCache$1)
>>>        at
>>> org.apache.solr.search.SolrIndexSearcher.getPositiveDocSet(SolrIndexSearcher.java:605)
>>>        at
>>> org.apache.solr.search.SolrIndexSearcher.numDocs(SolrIndexSearcher.java:1556)
>>>        at
>>> org.apache.solr.request.SimpleFacets.getFacetTermEnumCounts(SimpleFacets.java:377)
>>>        at
>>> org.apache.solr.request.SimpleFacets.getTermCounts(SimpleFacets.java:156)
>>>        at
>>> org.apache.solr.request.SimpleFacets.getFacetFieldCounts(SimpleFacets.java:182)
>>>        at
>>> org.apache.solr.request.SimpleFacets.getFacetCounts(SimpleFacets.java:96)
>>>        at
>>> org.apache.solr.handler.component.FacetComponent.process(FacetComponent.java:70)
>>>        at
>>> org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:169)
>>>        at
>>> org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:131)
>>>        at org.apache.solr.core.SolrCore.execute(SolrCore.java:1204)
>>>        at
>>> org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:303)
>>>        at
>>> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:232)
>>>
>>> Has anyone else experienced this or does anyone have an idea of why this
>>> might be happening?
>>> --
>>> View this message in context:
>>> http://www.nabble.com/LRUCache-causing-locked-threads-tp24040421p24040421.html
>>> Sent from the Solr - User mailing list archive at Nabble.com.
>>>
>>>
>>
>>
>
> --
> View this message in context: http://www.nabble.com/LRUCache-causing-locked-threads-tp24040421p24040772.html
> Sent from the Solr - User mailing list archive at Nabble.com.
>
>

Mime
View raw message