[ https://issues.apache.org/jira/browse/LUCENE-2357?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13287499#comment-13287499 ]
Adrien Grand commented on LUCENE-2357: -------------------------------------- Hi Otis, Before this change, each doc map used ~ {{maxDoc * 32}} bits while they now use ~ {{maxDoc * lg(min(numDocs, numDeletedDocs))}} (where lg is the ceil of log in base 2) bits. So even in the worst case (numDocs = numDeleted = maxDoc / 2), the improvement is {{((31 - lg(maxDoc))/32}}. On a segment with maxDoc=10000000, this is a 22% improvement. But the improvement is much better when the number of deleted documents is close to 0 or to maxDoc. For example, if your segment has maxDoc=10000000 and numDeletedDocs=100000, the improvement ({{32 - lg(min(numDocs, numDeletedDocs))/32}}) is close to 50%. If numDeletedDocs=100, the improvement is close to 80%. > Reduce transient RAM usage while merging by using packed ints array for docID > re-mapping > ---------------------------------------------------------------------------------------- > > Key: LUCENE-2357 > URL: https://issues.apache.org/jira/browse/LUCENE-2357 > Project: Lucene - Java > Issue Type: Improvement > Components: core/index > Reporter: Michael McCandless > Assignee: Michael McCandless > Priority: Minor > Fix For: 4.0 > > Attachments: LUCENE-2357.patch, LUCENE-2357.patch, LUCENE-2357.patch, > LUCENE-2357.patch, LUCENE-2357.patch > > > We allocate this int[] to remap docIDs due to compaction of deleted ones. > This uses alot of RAM for large segment merges, and can fail to allocate due > to fragmentation on 32 bit JREs. > Now that we have packed ints, a simple fix would be to use a packed int > array... and maybe instead of storing abs docID in the mapping, we could > store the number of del docs seen so far (so the remap would do a lookup then > a subtract). This may add some CPU cost to merging but should bring down > transient RAM usage quite a bit. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org