Context
LongListSegment replaces LongListOffHeap (see #24695) as the default off-heap index implementation. Unlike LongListOffHeap, which allocates NIO direct buffers (tracked by the JVM and capped by MaxDirectMemorySize), LongListSegment allocates native memory via the FFM Arena API, which bypasses MaxDirectMemorySize entirely.
The LongList indices were the dominant consumer of direct memory. With the migration, the current MaxDirectMemorySize values (8g–32g) no longer reflect actual direct memory usage and may cause confusion.
Change
Reduce MaxDirectMemorySize to 1g across all configuration files and startup scripts. This provides sufficient headroom for remaining direct memory consumers (primarily Netty, plus minor direct memory usage elsewhere) without overstating the allocation budget.
Files to update
Search for MaxDirectMemorySize across the repository and update all occurrences.
Context
LongListSegmentreplacesLongListOffHeap(see #24695) as the default off-heap index implementation. UnlikeLongListOffHeap, which allocates NIO direct buffers (tracked by the JVM and capped byMaxDirectMemorySize),LongListSegmentallocates native memory via the FFMArenaAPI, which bypassesMaxDirectMemorySizeentirely.The LongList indices were the dominant consumer of direct memory. With the migration, the current
MaxDirectMemorySizevalues (8g–32g) no longer reflect actual direct memory usage and may cause confusion.Change
Reduce
MaxDirectMemorySizeto1gacross all configuration files and startup scripts. This provides sufficient headroom for remaining direct memory consumers (primarily Netty, plus minor direct memory usage elsewhere) without overstating the allocation budget.Files to update
Search for
MaxDirectMemorySizeacross the repository and update all occurrences.