Well done Mikhail,
curious to see the performance!

Apart the disk usage ( of course building docValues will cost more space),
taking in consideration the Field cardinality, in the past when the field
cardinality was low ( few unique values in the field), the enum approach
was suggested ( so DocValues were non necessary strictly talking about
faceting).

After this improvement, in your opinion, what is the current status ? after
the 5.4 release, will enum faceting approach make sense anymore ?
Has anyone benchmarked this ?

Cheers

2015-09-23 9:02 GMT+01:00 Mikhail Khludnev <mkhlud...@griddynamics.com>:

> Uwe,
>
> I'm sorry for confusion https://issues.apache.org/jira/browse/SOLR-7730
> goes in 5.4 only. Hence, to get fast DV facets you need to apply patch
> (it's pretty small).
> Accelerating non-DV facets is not so clear so far. Please show profiler
> snapshot for non-DV facets if you wish to go this way.
>
>
> On Tue, Sep 22, 2015 at 5:36 PM, Uwe Reh <r...@hebis.uni-frankfurt.de>
> wrote:
>
> > The exact version as shown by the UI is:
> > - solr-impl   5.3.0 1696229 - noble - 2015-08-17 17:10:43
> > - lucene-impl 5.3.0 1696229 - noble - 2015-08-17 16:59:03
> >
> > Unfortunately my skills in debugging are limited. So I'm not sure about a
> > 'deeper caller stack'.
> > Did you mean the attached snapshot from VirtualVM, a stack trace like
> > below or something else? Please give me a hint.
> >
> > uwe
> >
> > "qtp1734853116-68" #68 prio=5 os_prio=64 tid=0x00000000117fd800 nid=0x77
> >> runnable [0xfffffd7f991fc000]
> >>    java.lang.Thread.State: RUNNABLE
> >>         at java.util.HashMap.resize(HashMap.java:734)
> >>         at java.util.HashMap.putVal(HashMap.java:662)
> >>         at java.util.HashMap.put(HashMap.java:611)
> >>         at
> >>
> org.apache.lucene.index.FieldInfos$Builder.addOrUpdateInternal(FieldInfos.java:344)
> >>         at
> >> org.apache.lucene.index.FieldInfos$Builder.add(FieldInfos.java:366)
> >>         at
> >> org.apache.lucene.index.FieldInfos$Builder.add(FieldInfos.java:304)
> >>         at
> >>
> org.apache.lucene.index.MultiFields.getMergedFieldInfos(MultiFields.java:245)
> >>         at
> >>
> org.apache.lucene.index.SlowCompositeReaderWrapper.getFieldInfos(SlowCompositeReaderWrapper.java:237)
> >>         at
> >>
> org.apache.lucene.index.SlowCompositeReaderWrapper.getSortedSetDocValues(SlowCompositeReaderWrapper.java:174)
> >>         at
> >>
> org.apache.solr.request.DocValuesFacets.getCounts(DocValuesFacets.java:72)
> >>         at
> >>
> org.apache.solr.request.SimpleFacets.getTermCounts(SimpleFacets.java:492)
> >>         at
> >>
> org.apache.solr.request.SimpleFacets.getTermCounts(SimpleFacets.java:385)
> >>         at
> >> org.apache.solr.request.SimpleFacets$3.call(SimpleFacets.java:628)
> >>         at
> >> org.apache.solr.request.SimpleFacets$3.call(SimpleFacets.java:619)
> >>         at java.util.concurrent.FutureTask.run(FutureTask.java:266)
> >>         at
> >> org.apache.solr.request.SimpleFacets$2.execute(SimpleFacets.java:573)
> >>         at
> >>
> org.apache.solr.request.SimpleFacets.getFacetFieldCounts(SimpleFacets.java:644)
> >>         at
> >>
> org.apache.solr.handler.component.FacetComponent.getFacetCounts(FacetComponent.java:294)
> >>         at
> >>
> org.apache.solr.handler.component.FacetComponent.process(FacetComponent.java:256)
> >>         at
> >>
> org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:285)
> >>         at
> >>
> org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:143)
> >>         at org.apache.solr.core.SolrCore.execute(SolrCore.java:2068)
> >>         at
> >> org.apache.solr.servlet.HttpSolrCall.execute(HttpSolrCall.java:669)
> >>         at
> >> org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:462)
> >>         at
> >>
> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:210)
> >>         at
> >>
> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:179)
> >>         at
> >>
> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
> >>         at
> >>
> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585)
> >>         at
> >>
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
> >>         at
> >>
> org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577)
> >>         at
> >>
> org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223)
> >>         at
> >>
> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)
> >>         at
> >>
> org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)
> >>         at
> >>
> org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
> >>         at
> >>
> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)
> >>         at
> >>
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
> >>         at
> >>
> org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:215)
> >>         at
> >>
> org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:110)
> >>         at
> >>
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
> >>         at org.eclipse.jetty.server.Server.handle(Server.java:499)
> >>         at
> >> org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:310)
> >>         at
> >>
> org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)
> >>         at org.eclipse.jetty.io
> >> .AbstractConnection$2.run(AbstractConnection.java:540)
> >>         at
> >>
> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)
> >>         at
> >>
> org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)
> >>         at java.lang.Thread.run(Thread.java:745)
> >>
> >
> >
> >
> > Am 22.09.2015 um 12:56 schrieb Mikhail Khludnev:
> >
> >> It's quite strange
> >> https://issues.apache.org/jira/browse/SOLR-7730 significantly optimized
> >> DV
> >> facets at 5.3.0 exactly by avoiding FileInfo merge.
> >> Would you mind to provide deeper caller stack for
> >> org.apache.lucene.index.FileInfos.MultibleFields.getMergedFieldInfos()?
> >> Or a time spend in SlowCompositeReaderWrapper, DocValuesFacets,
> >> MultiDocValues and their hot methods.
> >> Which version you exactly on? and how do you know that?
> >> Thanks
> >>
> >>
> >
>
>
> --
> Sincerely yours
> Mikhail Khludnev
> Principal Engineer,
> Grid Dynamics
>
> <http://www.griddynamics.com>
> <mkhlud...@griddynamics.com>
>



-- 
--------------------------

Benedetti Alessandro
Visiting card - http://about.me/alessandro_benedetti
Blog - http://alexbenedetti.blogspot.co.uk

"Tyger, tyger burning bright
In the forests of the night,
What immortal hand or eye
Could frame thy fearful symmetry?"

William Blake - Songs of Experience -1794 England

Reply via email to