[prev in list] [next in list] [prev in thread] [next in thread]
List: lucene-dev
Subject: [jira] Commented: (LUCENE-753) Use NIO positional read to avoid
From: "Brian Pinkerton (JIRA)" <jira () apache ! org>
Date: 2008-06-30 23:30:46
Message-ID: 211803434.1214868646590.JavaMail.jira () brutus
[Download RAW message or body]
[ https://issues.apache.org/jira/browse/LUCENE-753?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12609401#action_12609401 \
]
Brian Pinkerton commented on LUCENE-753:
----------------------------------------
I was curious about the discrepancy between the ChannelPread implementation and the \
SeparateFile implementation that Yonik saw. At least on Mac OS X, the kernel \
implementation of read is virtually the same as pread, so there shouldn't be any \
appreciable performance difference unless the VM is doing something funny. Sure \
enough, the implementations of read() under RandomAccessFile and read() under \
FileChannel are totally different. The former relies on either a buffer allocated \
either on the stack or by malloc, while the latter allocates a native buffer and \
copies the results to the original array.
Switching to a native buffer in the benchmark yields identical results for \
ChannelPread and SeparateFile on 1.5 and 1.6 on OS X. I'm attaching an \
implementation of ChannelPreadDirect that uses a native buffer.
This may be a moot point because any implementation inside Lucene needs to consume a \
byte[] and not a ByteBuffer, but at least it's informative.
> Use NIO positional read to avoid synchronization in FSIndexInput
> ----------------------------------------------------------------
>
> Key: LUCENE-753
> URL: https://issues.apache.org/jira/browse/LUCENE-753
> Project: Lucene - Java
> Issue Type: New Feature
> Components: Store
> Reporter: Yonik Seeley
> Attachments: FileReadTest.java, FileReadTest.java, FileReadTest.java, \
> FileReadTest.java, FileReadTest.java, FileReadTest.java, FSIndexInput.patch, \
> FSIndexInput.patch, lucene-753.patch
>
> As suggested by Doug, we could use NIO pread to avoid synchronization on the \
> underlying file. This could mitigate any MT performance drop caused by reducing the \
> number of files in the index format.
--
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
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic