[ 
https://issues.apache.org/jira/browse/LUCENE-753?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12550675
 ] 

Michael McCandless commented on LUCENE-753:
-------------------------------------------

I ran Yonik's most recent FileReadTest.java on the platforms below,
testing single-threaded random access for fully cached 64 MB file.

I tested two Windows XP Pro machines and got opposite results from
Yonik.  Yonik is your machine XP Home?

I'm showing ChannelTransfer to be much faster on all platforms except
Windows Server 2003 R2 Enterprise x64 where it's about the same as
ChannelPread and ChannelFile.

The ChannelTransfer test is giving the wrong checksum, but I think
just a bug in how checksum is computed (it's using "len" which with
ChannelTransfer is just the chunk size written on each call to
write).  So I think the MB/sec is still correct.

Mac OS X 10.4 (Sun java 1.5)
  config: impl=ClassicFile serial=false nThreads=1 iterations=200 
bufsize=6518936 filelen=67108864
  answer=-44611, ms=32565, MB/sec=412.15331797942576

  config: impl=ChannelFile serial=false nThreads=1 iterations=200 
bufsize=6518936 filelen=67108864
  answer=-44611, ms=19512, MB/sec=687.8727347273473

  config: impl=ChannelPread serial=false nThreads=1 iterations=200 
bufsize=6518936 filelen=67108864
  answer=-44611, ms=19492, MB/sec=688.5785347835009

  config: impl=ChannelTransfer serial=false nThreads=1 iterations=200 
bufsize=6518936 filelen=67108864
  answer=147783, ms=16009, MB/sec=838.3892060715847

Linux 2.6.22.1 (Sun java 1.5)
  config: impl=ClassicFile serial=false nThreads=1 iterations=200 
bufsize=6518936 filelen=67108864
  answer=-44611, ms=37879, MB/sec=354.33281765622115

  config: impl=ChannelFile serial=false nThreads=1 iterations=200 
bufsize=6518936 filelen=67108864
  answer=-44611, ms=21845, MB/sec=614.4093751430535

  config: impl=ChannelPread serial=false nThreads=1 iterations=200 
bufsize=6518936 filelen=67108864
  answer=-44611, ms=21902, MB/sec=612.8103734818737

  config: impl=ChannelTransfer serial=false nThreads=1 iterations=200 
bufsize=6518936 filelen=67108864
  answer=147783, ms=15978, MB/sec=840.015821754913

Windows Server 2003 R2 Enterprise x64 (Sun java 1.6)

  config: impl=ClassicFile serial=false nThreads=1 iterations=200 
bufsize=6518936 filelen=67108864
  answer=-44611, ms=32703, MB/sec=410.4141149130049

  config: impl=ChannelFile serial=false nThreads=1 iterations=200 
bufsize=6518936 filelen=67108864
  answer=-44611, ms=23344, MB/sec=574.9559972583961

  config: impl=ChannelPread serial=false nThreads=1 iterations=200 
bufsize=6518936 filelen=67108864
  answer=-44611, ms=23329, MB/sec=575.3256804835183

  config: impl=ChannelTransfer serial=false nThreads=1 iterations=200 
bufsize=6518936 filelen=67108864
  answer=147783, ms=23422, MB/sec=573.0412774314747

Windows XP Pro SP2, laptop (Sun Java 1.5)

  config: impl=ClassicFile serial=false nThreads=1 iterations=200 
bufsize=6518936 filelen=67108864
  answer=-44611, ms=71253, MB/sec=188.36782731955148

  config: impl=ChannelFile serial=false nThreads=1 iterations=200 
bufsize=6518936 filelen=67108864
  answer=-44611, ms=57463, MB/sec=233.57243443607192

  config: impl=ChannelPread serial=false nThreads=1 iterations=200 
bufsize=6518936 filelen=67108864
  answer=-44611, ms=58043, MB/sec=231.23844046655068

  config: impl=ChannelTransfer serial=false nThreads=1 iterations=200 
bufsize=6518936 filelen=67108864
  answer=147783, ms=20039, MB/sec=669.7825640001995

Windows XP Pro SP2, older desktop (Sun Java 1.6)

  config: impl=ClassicFile serial=false nThreads=1 iterations=200 
bufsize=6518936 filelen=67108864
  answer=-44611, ms=53047, MB/sec=253.01662299470283

  config: impl=ChannelFile serial=false nThreads=1 iterations=200 
bufsize=6518936 filelen=67108864
  answer=-44611, ms=34047, MB/sec=394.2130819161747

  config: impl=ChannelPread serial=false nThreads=1 iterations=200 
bufsize=6518936 filelen=67108864
  answer=-44611, ms=34078, MB/sec=393.8544750278772

  config: impl=ChannelTransfer serial=false nThreads=1 iterations=200 
bufsize=6518936 filelen=67108864
  answer=147783, ms=18781, MB/sec=714.6463340610192


> 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, 
> 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]

Reply via email to