lucene-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Michael McCandless (JIRA)" <>
Subject [jira] Updated: (LUCENE-892) CompoundFileReader's openInput produces streams that may do an extra buffer copy
Date Mon, 02 Jul 2007 17:25:04 GMT


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:
>             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:
For additional commands, e-mail:

View raw message