Hi,

I have just updated to lucene 1.9, and hit a problem with the mentioned optimization. I have applied it to the my JdbcBufferedOutput (I only duplicate the code because the BUFFER_SIZE is final), and I hit a problem. In the following code fragment (the method is writeBytes):

...
    } else {
      // is data larger then buffer?
      if (length > BUFFER_SIZE) {
        // we flush the buffer
        if (bufferPosition > 0)
          flush();
        // and write data at once
        flushBuffer(b, length);
      } else {
...

the bufferStart is not incremented after the flushBuffer method is called. So if someone calls getFilePointer just afterwards, it will give the wrong result (hit it with the compound format). A simple fix would be to add bufferStart += length; just after flushBuffer.

By the way, is there a chance that BufferedIndexInput and BufferedIndexOutput will have the buffer size as a member variable, with a setter (or at least protected visibility), so I won't have to duplicate the buffer support in Jdbc?

Shay

On 15 Feb 2006, at 12:25, Maxim Patramanskij wrote:

Doug,

what about including optimization of BuffereIndexOutput.writeBytes()
method:

[ http://issues.apache.org/jira/browse/LUCENE-435?page=all ]


made by Lukas Zapletal, into 1.9?

I'm wondering, because this can decrease index creation time, which I
discovered as critical when using Lucene together with JDBCDirectory.

Max


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



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

Reply via email to