You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by "Michael Busch (JIRA)" <ji...@apache.org> on 2008/05/24 01:03:56 UTC

[jira] Assigned: (LUCENE-430) Reducing buffer sizes for TermDocs.

     [ https://issues.apache.org/jira/browse/LUCENE-430?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Michael Busch reassigned LUCENE-430:
------------------------------------

    Assignee:     (was: Michael Busch)

> Reducing buffer sizes for TermDocs.
> -----------------------------------
>
>                 Key: LUCENE-430
>                 URL: https://issues.apache.org/jira/browse/LUCENE-430
>             Project: Lucene - Java
>          Issue Type: Improvement
>          Components: Store
>    Affects Versions: CVS Nightly - Specify date in submission
>         Environment: Operating System: other
> Platform: Other
>            Reporter: Paul Elschot
>            Priority: Minor
>         Attachments: lucene-430.patch
>
>
> From java-dev: 
>  
> On Friday 09 September 2005 00:34, Doug Cutting wrote: 
> > Paul Elschot wrote: 
> > > I suppose one of these cases are when many terms are used in a query.  
> > > Would it be easily possible to make the buffer size for a term iterator 
> > > depend on the numbers of documents to be iterated? 
> > > Many terms only occur in a few documents, so this could be a  
> > > nice win on total buffer size for the many terms case. 
> >  
> > This would not be too difficult. 
> >  
> > Look in SegmentTermDocs.java.  The buffer may be allocated when the  
> > parent's stream is first cloned, but clone() won't allocate a buffer if  
> > the source hasn't had a buffer allocated yet, and nothing should perform  
> > i/o directly on the parent's freqStream, so in practice a buffer should  
> > not be allocated until the first read is performed on the clone. 
>  
> I tried delaying the buffer allocation in BufferedIndexInput by 
> using this clone() method: 
>  
>   public Object clone() { 
>     BufferedIndexInput clone = (BufferedIndexInput)super.clone(); 
>     clone.buffer = null; 
>     clone.bufferLength = 0; 
>     clone.bufferPosition = 0; 
>     clone.bufferStart = getFilePointer();  
>     return clone; 
>   } 
>  
> With this all term document iterators seem to be empty, no 
> query in the test cases gives any results, for example TestDemo 
> and TestBoolean2. 
> As far as I can see, this delaying should work, but it doesn't and 
> I have no idea why. 
>  
> End of quote from java-dev. 
>  
> Doug replied that at a glance this clone method looks good. 
> Without this delayed buffer allocation, a reduced buffer size 
> for TermDocs cannot be implemented easily.

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