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
Assigned To: Michael McCandless
Priority: Minor
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]