My search process is using MMapDirectory on a read-only index via:

-Dorg.apache.lucene.FSDirectory.class=org.apache.lucene.store.MMapDirectory

Another indexing process is building the next version of the index in a
different directory. When it's time to switch to the new index, the search
process closes the old IndexSearcher, MultiReader (2) and FSDirectories (2)
and opens the new index. Subsequently, attempts to delete the old index
files fail because there are apparently still references to them from the
old MMapDirectory (the deletes succeed when using FSDirectory).

My understanding is that the file mapping is valid until the underlying
buffer is garbage-collected. Is there a deterministic way of releasing the
old memory mapped files so that they can be deleted sucessfully?

Thanks,
Peter

Reply via email to