The same boolean setting was useful as a mitigation for the following error, totally different business / search cluster -- Solr 9.10, Java 21, did not happen with Java 17 with identical search cluster:
> Caused by: java.io.IOException: Map failed: > MemorySegmentIndexInput(path="/var/solr/REDACTED_PATH/REDACTED_COLLECTION_shard39_replica_t77/data/index.properties") > [this may be caused by lack of enough unfragmented virtual address space or > too restrictive virtual memory limits enforced by the operating system, > preventing us to map a chunk of 78 bytes. Please review 'ulimit -v', > 'ulimit -m' (both should return 'unlimited'), and 'sysctl vm.max_map_count' Reminder: the setting doesn't exist in Solr 10; a proper solution must be found for a Solr 10 upgrade, assuming the problem re-appears. I'm somewhat optimistic a further Java upgrade (to say 25) would be helpful, albeit I haven't investigated that yet. On Wed, Aug 21, 2024 at 1:23 PM David Smiley <[email protected]> wrote: > For those trying Java 21 with Solr, if you find the performance to be > bad then try setting > -Dorg.apache.lucene.store.MMapDirectory.enableMemorySegments=false > This made a huge difference for me on our Solr nodes at work. > > I filed the following ticket to Solr that ought to avoid the JDK > performance regression if done: > https://issues.apache.org/jira/browse/SOLR-17375 > > ~ David Smiley > Apache Lucene/Solr Search Developer > http://www.linkedin.com/in/davidwsmiley >
