Skip to content

9.11.0

Compare
Choose a tag to compare
@benwtrent benwtrent released this 06 Jun 14:29
· 2267 commits to main since this release

New features

  • Add support for posix_madvise to MMapDirectory: If running on Linux/macOS and Java 21 or later, MMapDirectory uses IOContext to pass suitable MADV flags to kernel of operating system. This may improve paging logic especially when working with large indexes under memory pressure.
  • Expand support for new scalar bit levels for HNSW vectors. This includes 4-bit vectors and an option to compress them to gain a 50% reduction in memory usage.
  • Recursive graph bisection is now supported on indexes that have blocks

Improvements

  • MergeScheduler can now provide an executor for intra-merge parallelism. The first implementation is the ConcurrentMergeScheduler.
  • Upgrade icu4j to version 74.2.

Optimizations

  • Use RWLock to access LRUQueryCache to reduce contention.
  • Speedup multi-segment HNSW graph search for diversifying child kNN queries.
  • Add a MemorySegment Vector scorer - for scoring without copying on-heap. This can improve search latency by almost 2x for byte vectors.
  • Switch to using optimized, primitive collections where possible to improve performance and heap utilization.

Full Changelog: releases/lucene/9.10.0...releases/lucene/9.11.0