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

Michael McCandless commented on LUCENE-2205:
--------------------------------------------

That's very interesting -- I like that approach.  So it  presumably has higher 
index/enumeration CPU cost but lower RAM cost.  I think this is an OK tradeoff 
with terms dict, since "typically" the cost of the term lookup is dwarfed by 
the cost of iterating the postings (though, for TermRangeQuery on many low-freq 
terms, this doesn't hold true).

In flex you could just implement StandardTermsIndexReader -- the purpose of 
that abstract class is to allow pluggability of the terms index.  Also, 
implementing this new approach there would be a good test case [that it's 
usable, generic enough, etc.].  You should be able to plug it in (temporarily 
make it the default, for the standard codec), then pass all unit tests...

> Rework of the TermInfosReader class to remove the Terms[], TermInfos[], and 
> the index pointer long[] and create a more memory efficient data structure.
> -------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: LUCENE-2205
>                 URL: https://issues.apache.org/jira/browse/LUCENE-2205
>             Project: Lucene - Java
>          Issue Type: Improvement
>         Environment: Java5
>            Reporter: Aaron McCurry
>         Attachments: patch-final.txt, RandomAccessTest.java, rawoutput.txt
>
>
> Basically packing those three arrays into a byte array with an int array as 
> an index offset.  
> The performance benefits are stagering on my test index (of size 6.2 GB, with 
> ~1,000,000 documents and ~175,000,000 terms), the memory needed to load the 
> terminfos into memory were reduced to 17% of there original size.  From 291.5 
> MB to 49.7 MB.  The random access speed has been made better by 1-2%, load 
> time of the segments are ~40% faster as well, and full GC's on my JVM were 
> made 7 times faster.
> I have already performed the work and am offering this code as a patch.  
> Currently all test in the trunk pass with this new code enabled.  I did write 
> a system property switch to allow for the original implementation to be used 
> as well.
> -Dorg.apache.lucene.index.TermInfosReader=default or small
> I have also written a blog about this patch here is the link.
> http://www.nearinfinity.com/blogs/aaron_mccurry/my_first_lucene_patch.html

-- 
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: java-dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: java-dev-h...@lucene.apache.org

Reply via email to