[ 
http://issues.apache.org/jira/browse/LUCENE-709?page=comments#action_12450819 ] 
            
Doug Cutting commented on LUCENE-709:
-------------------------------------

This looks workable to me.  Alternately, we could add a bufferAdded(int size) 
method to RAMOutputStream, and increment the directory size whenever this is 
called.

Also, should renameFile throw an exception if the source doesn't exist?

> [PATCH] Enable application-level management of IndexWriter.ramDirectory size
> ----------------------------------------------------------------------------
>
>                 Key: LUCENE-709
>                 URL: http://issues.apache.org/jira/browse/LUCENE-709
>             Project: Lucene - Java
>          Issue Type: Improvement
>          Components: Index
>    Affects Versions: 2.0.1
>         Environment: All
>            Reporter: Chuck Williams
>         Attachments: ramdir.patch, ramDirSizeManagement.patch, 
> ramDirSizeManagement.patch
>
>
> 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: 
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to