I posted a bug on this to Sun a long while back.
NIO preads actually sync behind the scenes on some platforms. Using
multiple file descriptors is much faster.
See bug http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6265734
On Dec 9, 2007, at 6:24 PM, Brian Pinkerton (JIRA) wrote:
[ https://issues.apache.org/jira/browse/LUCENE-753?
page=com.atlassian.jira.plugin.system.issuetabpanels:comment-
tabpanel#action_12549869 ]
Brian Pinkerton commented on LUCENE-753:
----------------------------------------
Most of my workloads would benefit by removing the synchronization
in FSIndexInput, so I took a closer look at this issue. I found
exactly the opposite results that Yonik did on two platforms that I
use frequently in production (Solaris and Linux), and by a
significant margin. I even get the same behavior on the Mac,
though I'm not running Java6 there.
# uname -a
Linux xxx 2.6.9-22.0.1.ELsmp #1 SMP Tue Oct 18 18:39:27 EDT 2005
i686 i686 i386 GNU/Linux
# java -version
java version "1.6.0_02"
Java(TM) SE Runtime Environment (build 1.6.0_02-b05)
Java HotSpot(TM) Client VM (build 1.6.0_02-b05, mixed mode, sharing)
config: impl=ChannelPread serial=false nThreads=200 iterations=10
bufsize=1024 filelen=10485760
answer=0, ms=88543, MB/sec=236.85124741650947
config: impl=ClassicFile serial=false nThreads=200 iterations=10
bufsize=1024 filelen=10485760
answer=0, ms=150560, MB/sec=139.29011689691816
# uname -a
SunOS xxx 5.10 Generic_118844-26 i86pc i386 i86pc
# java -version
java version "1.6.0"
Java(TM) SE Runtime Environment (build 1.6.0-b105)
Java HotSpot(TM) Server VM (build 1.6.0-b105, mixed mode)
config: impl=ChannelPread serial=false nThreads=200 iterations=10
bufsize=1024 filelen=10485760
answer=0, ms=39621, MB/sec=529.3031473208652
config: impl=ClassicFile serial=false nThreads=200 iterations=10
bufsize=1024 filelen=10485760
answer=0, ms=119057, MB/sec=176.14688762525515
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, FSIndexInput.patch,
FSIndexInput.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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]