lucene-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Peter Keegan" <peterlkee...@gmail.com>
Subject Re: MMapDirectory vs RAMDirectory
Date Wed, 07 Jun 2006 15:04:16 GMT
I was able to improve the behavior by setting the mapped ByteBuffer to null
in the close method of MMapIndexInput. This seems to be a strong enough
'suggestion' to the gc, as I can see the references go away with process
explorer, and the index files can be deleted, usually. Occasionally, a
reference to the '.tis' file remains.

Peter


On 6/5/06, Daniel Noll <daniel@nuix.com.au> wrote:
>
> Peter Keegan wrote:
>
> > There is no 'unmap' method, so my understanding is that the file mapping
> is
> > valid until the underlying buffer is garbage-collected. However, forcing
> > the gc doesn't help.
>
> You're half right.
>
> The file mapping is indeed valid until the underlying buffer is garbage
> collected, but you can't "force" the GC -- there is no API which does
> that.
>
> Note the wording in the Javadoc for System.gc():
>
>    "Calling the gc method **suggests** that the Java Virtual Machine
>     expend effort toward recycling unused objects in order to make the
>     memory they currently occupy available for quick reuse. When control
>     returns from the method call, the Java Virtual Machine has made a
>     best effort to reclaim space from all discarded objects."
>
> > The file deletes don't fail on Linux, but I'm wondering if there is
> still a
> > memory leak?
>
> Linux allows you to delete a file while someone has the file descriptor
> open, but the file descriptor will remain valid (i.e. the delete doesn't
> actually occur) until everyone releases the file descriptor.
>
> I ran into similar issues as these when working on other things, and
> eventually ended up switching to using a RandomAccessFile, as those can
> be closed.  Otherwise you're right -- the workaround is to routinely try
> to delete the file.
>
> Daniel
>
> --
> Daniel Noll
>
> Nuix Pty Ltd
> Suite 79, 89 Jones St, Ultimo NSW 2007, Australia    Ph: +61 2 9280 0699
> Web: http://www.nuix.com.au/                        Fax: +61 2 9212 6902
>
> This message is intended only for the named recipient. If you are not
> the intended recipient you are notified that disclosing, copying,
> distributing or taking any action in reliance on the contents of this
> message or attachment is strictly prohibited.
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: java-user-unsubscribe@lucene.apache.org
> For additional commands, e-mail: java-user-help@lucene.apache.org
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message