[
https://issues.apache.org/jira/browse/LUCENE-892?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Michael McCandless updated LUCENE-892:
--------------------------------------
Attachment: LUCENE-892.patch
Attached patch that implements the design above (make an
IndexInput.readBytes that let's you specify whether or not a buffer
should be used). All tests pass.
> CompoundFileReader's openInput produces streams that may do an extra buffer
> copy
> --------------------------------------------------------------------------------
>
> Key: LUCENE-892
> URL: https://issues.apache.org/jira/browse/LUCENE-892
> Project: Lucene - Java
> Issue Type: Improvement
> Components: Index
> Affects Versions: 2.1
> Reporter: Michael McCandless
> Assignee: Michael McCandless
> Priority: Minor
> Attachments: LUCENE-892.patch
>
>
> Spinoff of LUCENE-888.
> The class for reading from a compound file (CompoundFileReader) has a
> primary stream which is a BufferedIndexInput when that stream is from
> an FSDirectory (which is the norm). That is one layer of buffering.
> Then, when its openInput is called, a CSIndexInput is created which
> also subclasses from BufferedIndexInput. That's a second layer of
> buffering.
> When a consumer actually uses that CSIndexInput to read, and a call to
> readByte or readBytes runs out of what's in the first buffer, it will
> go to refill its buffer. But that refill calls the first
> BufferedIndexInput which in turn may refill its buffer (a double
> copy) by reading the underlying stream.
> Not sure how to fix it yet but we should change things to not do the
> extra buffer copy.
--
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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]