lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Chuck Williams (JIRA)" <>
Subject [jira] Created: (LUCENE-709) [PATCH] Enable application-level management of IndexWriter.ramDirectory size
Date Fri, 10 Nov 2006 05:54:37 GMT
[PATCH] Enable application-level management of IndexWriter.ramDirectory size

                 Key: LUCENE-709
             Project: Lucene - Java
          Issue Type: Improvement
          Components: Index
    Affects Versions: 2.0.1
         Environment: All
            Reporter: Chuck Williams

IndexWriter currently only supports bounding of in the in-memory index cache using maxBufferedDocs,
which limits it to a fixed number of documents.  When document sizes vary substantially, especially
when documents cannot be truncated, this leads either to inefficiencies from a too-small value
or OutOfMemoryErrors from a too large value.

This simple patch exposes IndexWriter.flushRamSegments(), and provides access to size information
about IndexWriter.ramDirectory so that an application can manage this based on total number
of bytes consumed by the in-memory cache, thereby allow a larger number of smaller documents
or a smaller number of larger documents.  This can lead to much better performance while elimianting
the possibility of OutOfMemoryErrors.

The actual job of managing to a size constraint, or any other constraint, is left up the applicatation.

The addition of synchronized to flushRamSegments() is only for safety of an external call.
 It has no significant effect on internal calls since they all come from a sychronized caller.

This message is automatically generated by JIRA.
If you think it was sent incorrectly contact one of the administrators:
For more information on JIRA, see:


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

View raw message