lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sean Bridges (Commented) (JIRA)" <>
Subject [jira] [Commented] (LUCENE-3932) Improve load time of .tii files
Date Fri, 30 Mar 2012 20:43:26 GMT


Sean Bridges commented on LUCENE-3932:

{quote}Seems like if we made a direct "decode tii file and write in-memory format" (instead
of going through SegmentTermEnum), we could get some of this back. The vLongs unfortunately
need to be decoded/re-encoded because they are deltas in the file but absolutes in memory.
But, eg the vInt docFreq could be a "copyVInt" method instead of readVInt then writeVInt,
which should save a bit.{quote}

Is the space savings of delta encoding worth the processing time?  You could write the .tii
file to disk such that on open you could read it straight into a byte[]
> Improve load time of .tii files
> -------------------------------
>                 Key: LUCENE-3932
>                 URL:
>             Project: Lucene - Java
>          Issue Type: Improvement
>    Affects Versions: 3.5
>         Environment: Linux
>            Reporter: Sean Bridges
>         Attachments: LUCENE-3932.trunk.patch, perf.csv
> We have a large 50 gig index which is optimized as one segment, with a 66 MEG .tii file.
 This index has no norms, and no field cache.
> It takes about 5 seconds to load this index, profiling reveals that 60% of the time is
spent in GrowableWriter.set(index, value), and most of time in set(...) is spent resizing
PackedInts.Mutatable current.
> In the constructor for TermInfosReaderIndex, you initialize the writer with the line,
> {quote}GrowableWriter indexToTerms = new GrowableWriter(4, indexSize, false);{quote}
> For our index using four as the bit estimate results in 27 resizes.
> The last value in indexToTerms is going to be ~ tiiFileLength, and if instead you use,
> {quote}int bitEstimate = (int) Math.ceil(Math.log10(tiiFileLength) / Math.log10(2));
> GrowableWriter indexToTerms = new GrowableWriter(bitEstimate, indexSize, false);{quote}
> Load time improves to ~ 2 seconds.

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:!default.jspa
For more information on JIRA, see:


To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message