lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Yonik Seeley (JIRA)" <j...@apache.org>
Subject [jira] Issue Comment Edited: (LUCENE-2723) Speed up Lucene's low level bulk postings read API
Date Wed, 15 Dec 2010 20:36:01 GMT

    [ https://issues.apache.org/jira/browse/LUCENE-2723?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12971800#action_12971800
] 

Yonik Seeley edited comment on LUCENE-2723 at 12/15/10 3:34 PM:
----------------------------------------------------------------

I did some faceting performance tests of solr trunk vs branch.
This is a 10M doc index w/ standard codec.  It looks like terms that match many docs got a
little speedup, but terms that match few docs were slowed down.

Trunk
|unique values in field|cache.minDf=0|cache.minDf=maxdoc|
|10|133|208|
|100|176|256|
|1000|214|314|
|10000|433|516|
|100000|2166|2096|
|10000000|30974|21093|

Branch:
|unique values in field|cache.minDf=0|cache.minDf=maxdoc|
|10|132|187|
|100|171|237|
|1000|223|292|
|10000|487|547|
|100000|3190|3123|
|10000000|45071|36504|

One think trunk had was specialized per-segment code - it used MultiDocsEnum.getSubs(), so
this is not necessarily a problem with the new bulk codec.

update: to see if it was MultiFields related (i.e. that Solr's branch code does not yet work
per-segment where trunk does) I optimized the index and reran the worst-case (10M unique values).
 result: trunk=1.4sec, branch=25sec.

      was (Author: yseeley@gmail.com):
    I did some faceting performance tests of solr trunk vs branch.
This is a 10M doc index w/ standard codec.  It looks like terms that match many docs got a
little speedup, but terms that match few docs were slowed down.

Trunk
|unique values in field|cache.minDf=0|cache.minDf=maxdoc|
|10|133|208|
|100|176|256|
|1000|214|314|
|10000|433|516|
|100000|2166|2096|
|10000000|30974|21093|

Branch:
|unique values in field|cache.minDf=0|cache.minDf=maxdoc|
|10|132|187|
|100|171|237|
|1000|223|292|
|10000|487|547|
|100000|3190|3123|
|10000000|45071|36504|

One think trunk had was specialized per-segment code - it used MultiDocsEnum.getSubs(), so
this is not necessarily a problem with the new bulk codec.

  
> Speed up Lucene's low level bulk postings read API
> --------------------------------------------------
>
>                 Key: LUCENE-2723
>                 URL: https://issues.apache.org/jira/browse/LUCENE-2723
>             Project: Lucene - Java
>          Issue Type: Improvement
>          Components: Index
>            Reporter: Michael McCandless
>            Assignee: Michael McCandless
>             Fix For: 4.0
>
>         Attachments: LUCENE-2723-termscorer.patch, LUCENE-2723-termscorer.patch, LUCENE-2723-termscorer.patch,
LUCENE-2723.patch, LUCENE-2723.patch, LUCENE-2723.patch, LUCENE-2723.patch, LUCENE-2723.patch,
LUCENE-2723_termscorer.patch
>
>
> Spinoff from LUCENE-1410.
> The flex DocsEnum has a simple bulk-read API that reads the next chunk
> of docs/freqs.  But it's a poor fit for intblock codecs like FOR/PFOR
> (from LUCENE-1410).  This is not unlike sucking coffee through those
> tiny plastic coffee stirrers they hand out airplanes that,
> surprisingly, also happen to function as a straw.
> As a result we see no perf gain from using FOR/PFOR.
> I had hacked up a fix for this, described at in my blog post at
> http://chbits.blogspot.com/2010/08/lucene-performance-with-pfordelta-codec.html
> I'm opening this issue to get that work to a committable point.
> So... I've worked out a new bulk-read API to address performance
> bottleneck.  It has some big changes over the current bulk-read API:
>   * You can now also bulk-read positions (but not payloads), but, I
>      have yet to cutover positional queries.
>   * The buffer contains doc deltas, not absolute values, for docIDs
>     and positions (freqs are absolute).
>   * Deleted docs are not filtered out.
>   * The doc & freq buffers need not be "aligned".  For fixed intblock
>     codecs (FOR/PFOR) they will be, but for varint codecs (Simple9/16,
>     Group varint, etc.) they won't be.
> It's still a work in progress...

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org


Mime
View raw message