File-based {@link Directory} implementation that uses
mmap for reading, and {@link
SimpleFSDirectory.SimpleFSIndexOutput} for writing.
NOTE: memory mapping uses up a portion of the
virtual memory address space in your process equal to the
size of the file being mapped. Before using this class,
be sure your have plenty of virtual address space, e.g. by
using a 64 bit JRE, or a 32 bit JRE with indexes that are
guaranteed to fit within the address space.
On 32 bit platforms also consult {@link #setMaxChunkSize}
if you have problems with mmap failing because of fragmented
address space. If you get an OutOfMemoryException, it is recommened
to reduce the chunk size, until it works.
Due to
this bug in Sun's JRE, MMapDirectory's {@link IndexInput#close}
is unable to close the underlying OS file handle. Only when GC
finally collects the underlying objects, which could be quite
some time later, will the file handle be closed.
This will consume additional transient disk usage: on Windows,
attempts to delete or overwrite the files will result in an
exception; on other platforms, which typically have a "delete on
last close" semantics, while such operations will succeed, the bytes
are still consuming space on disk. For many applications this
limitation is not a problem (e.g. if you have plenty of disk space,
and you don't rely on overwriting files on Windows) but it's still
an important limitation to be aware of.
This class supplies the workaround mentioned in the bug report
(disabled by default, see {@link #setUseUnmap}), which may fail on
non-Sun JVMs. It forcefully unmaps the buffer on close by using
an undocumented internal cleanup functionality.
{@link #UNMAP_SUPPORTED} is , if the workaround
can be enabled (with no guarantees).
Namespace: Lucene.Net.StoreCopyC#
true
Assembly: Lucene.Net (in Lucene.Net.dll) Version: 2.9.4.1
Syntax
C# |
---|
public class MMapDirectory : FSDirectory |
Visual Basic |
---|
Public Class MMapDirectory _ Inherits FSDirectory |
Visual C++ |
---|
public ref class MMapDirectory : public FSDirectory |
Inheritance Hierarchy
System..::..Object
Lucene.Net.Store..::..Directory
Lucene.Net.Store..::..FSDirectory
Lucene.Net.Store..::..MMapDirectory
Lucene.Net.Store..::..Directory
Lucene.Net.Store..::..FSDirectory
Lucene.Net.Store..::..MMapDirectory