All Downloads are FREE. Search and download functionalities are using the official Maven repository.

cene.lucene-misc.6.3.0.source-code.overview.html Maven / Gradle / Ivy

There is a newer version: 10.1.0
Show newest version


  
    
      miscellaneous
    
  
  

Misc Tools

The misc package has various tools for splitting/merging indices, changing norms, finding high freq terms, and others.

NativeUnixDirectory

NOTE: This uses C++ sources (accessible via JNI), which you'll have to compile on your platform.

{@link org.apache.lucene.store.NativeUnixDirectory} is a Directory implementation that bypasses the OS's buffer cache (using direct IO) for any IndexInput and IndexOutput used during merging of segments larger than a specified size (default 10 MB). This avoids evicting hot pages that are still in-use for searching, keeping search more responsive while large merges run.

See this blog post for details. Steps to build:

  • cd lucene/misc/
  • To compile NativePosixUtil.cpp -> libNativePosixUtil.so, run ant build-native-unix.
  • libNativePosixUtil.so will be located in the lucene/build/native/ folder
  • Make sure libNativePosixUtil.so is on your LD_LIBRARY_PATH so java can find it (something like export LD_LIBRARY_PATH=/path/to/dir:$LD_LIBRARY_PATH, where /path/to/dir contains libNativePosixUtil.so)
  • ant jar to compile the java source and put that JAR on your CLASSPATH

NativePosixUtil.cpp/java also expose access to the posix_madvise, madvise, posix_fadvise functions, which are somewhat more cross platform than O_DIRECT, however, in testing (see above link), these APIs did not seem to help prevent buffer cache eviction.





© 2015 - 2025 Weber Informatics LLC | Privacy Policy