I think readahead would be less interesting to Lucene; while we
definitely want a certain amount of readahead (to "amortize" the
seeking), too much readahead starts means evicting things from the IO
cache.  OSs already do a fair job (I think) of some amount of
readahead, though if we do gain posix_fadvise in Java and we use it to
advise to not IO cache those reads, I wonder how that impacts the OS's
readahead...

Some serious empirical testing is needed.  Let the machines tell us
how they work ;)

Mike

On Tue, Jun 16, 2009 at 11:20 PM, Jason
Rutherglen<jason.rutherg...@gmail.com> wrote:
> Sorry, not portable, but POSIX_FADV_WILLNEED is which can be used with
> posix_fadvise.
>
> On Tue, Jun 16, 2009 at 8:12 PM, Jason Rutherglen
> <jason.rutherg...@gmail.com> wrote:
>>
>> Perhaps we'd also like to request readahead be included in JDK7?
>>
>> http://linux.die.net/man/2/readahead
>>
>> On Tue, Jun 16, 2009 at 9:03 AM, Michael McCandless
>> <luc...@mikemccandless.com> wrote:
>>>
>>> Hmm... posix_fadvise lets you do this with a file descriptor; this
>>> would be better for Lucene (per descriptor not per mapped region of
>>> RAM) since we could "advise" independent of which FSDir impl is in
>>> use...
>>>
>>> Mike
>>>
>>> On Tue, Jun 16, 2009 at 10:32 AM, Uwe Schindler<u...@thetaphi.de> wrote:
>>> > But to use it, we should change MMapDirectory to also use the mapping
>>> > when
>>> > writing to files. I thought about it, it is very simple to implement
>>> > (just
>>> > copy the IndexInput and change all gets() to sets())
>>> >
>>> > -----
>>> > Uwe Schindler
>>> > H.-H.-Meier-Allee 63, D-28213 Bremen
>>> > http://www.thetaphi.de
>>> > eMail: u...@thetaphi.de
>>> >
>>> >> -----Original Message-----
>>> >> From: Michael McCandless [mailto:luc...@mikemccandless.com]
>>> >> Sent: Tuesday, June 16, 2009 4:22 PM
>>> >> To: java-dev@lucene.apache.org
>>> >> Cc: Alan Bateman; nio-disc...@openjdk.java.net
>>> >> Subject: Re: madvise(ptr, len, MADV_SEQUENTIAL)
>>> >>
>>> >> Lucene could really make use of this method.  When a segment merge
>>> >> takes place, we can read & write many GB of data, which without
>>> >> madvise on many OSs would effectively flush the IO cache (thus hurting
>>> >> our search performance).
>>> >>
>>> >> Mike
>>> >>
>>> >> On Mon, Jun 15, 2009 at 6:01 PM, Jason
>>> >> Rutherglen<jason.rutherg...@gmail.com> wrote:
>>> >> > Thanks Alan.
>>> >> >
>>> >> > I cross posted this to the Lucene dev list where we are discussing
>>> >> > using
>>> >> > madvise for minimizing unnecessary IO cache usage when merging
>>> >> > segments
>>> >> > (where we really want the newly merged segments in the IO cache
>>> >> > rather
>>> >> than
>>> >> > the old segment files).
>>> >> >
>>> >> > How would the advise method work?  Would there need to be a hint in
>>> >> > the
>>> >> > FileChannel.map method?
>>> >> >
>>> >> > -J
>>> >> >
>>> >> > On Mon, Jun 15, 2009 at 12:36 AM, Alan Bateman
>>> >> > <alan.bate...@sun.com>
>>> >> wrote:
>>> >> >>
>>> >> >> Jason Rutherglen wrote:
>>> >> >>>
>>> >> >>> Is there going to be a way to do this in the new Java IO APIs?
>>> >> >>
>>> >> >> Good question, as it has come up a few times and is needed for some
>>> >> >> important use-cases. A while back I looked into adding a
>>> >> >> MappedByteBuffer#advise method to allow the application provide
>>> >> >> hints
>>> >> on the
>>> >> >> expected usage but didn't complete it. We should probably look at
>>> >> >> this
>>> >> again
>>> >> >> for jdk7.
>>> >> >>
>>> >> >> -Alan.
>>> >> >>
>>> >> >
>>> >> >
>>> >>
>>> >> ---------------------------------------------------------------------
>>> >> To unsubscribe, e-mail: java-dev-unsubscr...@lucene.apache.org
>>> >> For additional commands, e-mail: java-dev-h...@lucene.apache.org
>>> >
>>> >
>>> >
>>> > ---------------------------------------------------------------------
>>> > To unsubscribe, e-mail: java-dev-unsubscr...@lucene.apache.org
>>> > For additional commands, e-mail: java-dev-h...@lucene.apache.org
>>> >
>>> >
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: java-dev-unsubscr...@lucene.apache.org
>>> For additional commands, e-mail: java-dev-h...@lucene.apache.org
>>>
>>
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: java-dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: java-dev-h...@lucene.apache.org

Reply via email to