Hi Yonik,

Thanks for the information, but we are still facing issues related to
slowness and high memory usage.

As per my understanding, the default 'FC' method suits are use case, as we
have total about 1.1 million documents and no. of unique values for facet
fields is quite high.
We facet on 5 fields and the no. of unique values are:
Field 1 : 19,000
Field 2 : 19,000
Field 3 : 55,000
Field 4:  474
Field 5 : 27 (The alphabetical faceting)

All the facet fields are of type string and multivalued.

As enum method , will create a bitset for all the unique values, it would be
consuming more memory compared to fc method.
Also even with a field value cache size of '100', the heap memory(max 6GB)
is getting consumed pretty fast.

With about 60 parallel requests contributing about 4 million queries, about
25% of our queries have QTime above 1 sec.
The max QTime shoots upto 55 sec.

Debugging deeper into the solr and lucene code, the particular method which
slows us down is IndexSearcher.numDocs which internally gets the terms by
loading it from the index.
I have not been able to determine the root cause of this.

Any other pointers/suggestions in this regard will be helpful.

Thanks,
Rachita

On Tue, Feb 22, 2011 at 10:42 PM, Yonik Seeley
<yo...@lucidimagination.com>wrote:

> On Tue, Feb 22, 2011 at 9:13 AM, Rachita Choudhary
> <rachita.choudh...@burrp.com> wrote:
> > Hi Solr Users,
> >
> > We are upgrading from Solr 1.3 to Solr 1.4.1.
> > While using Solr 1.3 , we were seeing multiple blocking active threads on
> > "org.apache.lucene.store.FSDirectory$FSIndexInput.readInternal() ".
> >
> > To utilize the benefits of NIO, on upgrading to Solr 1.4.1, we see other
> > type of multiple blocking threads on
> > "org.apache.solr.request.UnInvertedField.getUnInvertedField()  &
> >
> > SegmentReader$CoreReaders.getTermsReader".
> > Due to this, the QTimes shoots up from few hundreds to thousand of
> > msec.. even going upto 30-40 secs for a single query.
> >
> > - The multiple blocking threads show up after few thousands of queries.
> > - We do not have faceting and sorting on the same fields.
> > - Our facet fields are multivalued text fields, but no large text values
> are
> > present.
> > - Index size - around 10 GB
> > - We have not specified any method for faceting in our schema.xml.
> > - Our field value cache settings are:
> >  <fieldValueCache
> >        class="solr.FastLRUCache"
> >        size="175"
> >        autowarmCount="0"
> >        showItems="10"
> >  />
> >
> > Can someone please tell us the why we are seeing these blocked threads ?
> > Also if they are related to our field value cache , then a cache of size
> 175
> > will be filled up with very few initial queries and right after that we
> > should see multiple blocking threads ?
> > What difference it will make if we have "facet.method = enum" ?
>
> fc method on a multivalued field instantiates an UnInvertedField (like
> a multi-valued field cache) which can take some time.
> Just like sorting, you may want to use some warming faceting queries
> to make sure that real queries don't pay the cost of the initial entry
> construction.
>
> From your fieldValueCache statistics, it looks like the number of
> terms is low enough that the enum method may be fine here.
>
> -Yonik
> http://lucidimagination.com
>
>
> > Is this all related to fieldValueCache or is there some other
> configuration
> > which we need to set to avoid these blocking threads?
> >
> > Thanks,
> > Rachita
> >
> > *Cache values example:
> > *facetField1_27443 :
> >
> {field=facet1_27443,memSize=4214884,tindexSize=52,time=22,phase1=15,nTerms=4,bigTerms=0,termInstances=6,uses=1}
> >
> > facetField1_70 :
> >
> {field=facetField1_70,memSize=4223310,tindexSize=308,time=28,phase1=21,nTerms=636,bigTerms=0,termInstances=14404,uses=1}
> >
> > facetField2 :
> {field=facetField2,memSize=4262644,tindexSize=3156,time=273,phase1=267,nTerms=12188,bigTerms=0,termInstances=1255522,uses=7031}
>

Reply via email to