Re: Should we separate Panama FFM and Vector classes in Lucene?
Uwe Schindler <[email protected]> Thu, 16 Oct 2025 10:27:41 +1000
| Newsgroups | gmane.comp.jakarta.lucene.devel |
|---|---|
| Message-ID | <[email protected]> |
Hi, I don't see a porblem with that. We can inlcude that in main branch. Backporting is harder but we already have a difference between 10 and main: All code using MemorySegment / MMapDircetory is already different. Git merge/cherry picking is already very intelligent when it figures out file name is identical. Uwe Am 14.10.2025 um 00:13 schrieb Trevor McCulloch: > Agree on waiting for Lucene 11, otherwise it may become very difficult > to backport any related features into 10.x. > > On Sat, Oct 11, 2025 at 5:58 PM Uwe Schindler <[email protected]> wrote: > > Hi, > > hi, I am on travel at the moment till end of October and won't be > able to look into this. Basically we can move some parts of the > MemorySegment supporting code to main sourceSet, but I don't want > to touch that code too much. The nmost important thing si: No > public API is allowed to have any internal Vector API signatures > in public API (we don't have a check fo this), so we'd need to > closely look at it. The reason why some of the code is in the java > 25 sourceset is exactly because of this. E.g. the > MemorySegment-based scoring. > > In the future we may add more MemorySegment based APIs into core > (and remove all ByteBuffers, too), but this is some approach I > wanted to look at after we have released Lucene 11. > > Uwe > > Am 09.10.2025 um 23:57 schrieb Kaival Parikh: >> For vector search in Lucene, functionality for memory access >> (on/off-heap -- using Panama FFM) and vectorization (using the >> Vector API -- jdk.incubator.vector) is tightly coupled (see >> |PanamaVectorUtilSupport| >> <https://github.com/apache/lucene/blob/602bfbd9af0ee9027de45c1572527eee6b073841/lucene/core/src/java25/org/apache/lucene/internal/vectorization/PanamaVectorUtilSupport.java#L57>|). >> This made sense when it was originally added, because Panama FFM >> was in preview + Vector API was incubating.| >> | >> | >> |However, since Panama FFM was finalized in JDK22 >> (|https://openjdk.org/jeps/454|), I wonder if we should decouple >> it from vectorization now?| >> |This would mean exposing (and supporting!) top-level on/off-heap >> vector similarity functions from all VectorUtilSupport >> <https://github.com/apache/lucene/blob/8f68736e75609d13053420450ad451e52cba107d/lucene/core/src/java/org/apache/lucene/internal/vectorization/VectorUtilSupport.java#L25> implementations >> (with Lucene providing one non-vectorized >> <https://github.com/apache/lucene/blob/8f68736e75609d13053420450ad451e52cba107d/lucene/core/src/java/org/apache/lucene/internal/vectorization/DefaultVectorUtilSupport.java#L26> >> and another Vector API powered vectorized >> <https://github.com/apache/lucene/blob/8f68736e75609d13053420450ad451e52cba107d/lucene/core/src/java25/org/apache/lucene/internal/vectorization/PanamaVectorUtilSupport.java#L57> implementation), >> and only scoping non-finalized (i.e. incubating Vector API >> related) functionality in the MR-JAR (i.e. java25/ >> <https://github.com/apache/lucene/tree/main/lucene/core/src/java25>)| >> | >> | >> |Although not a huge motivation, this would allow users that do >> not use vectorization to score vectors off-heap.| >> |The main benefit could be cleaner separation of functionality in >> the long term, also making it easier to write new >> ||VectorUtilSupport >> <https://github.com/apache/lucene/blob/8f68736e75609d13053420450ad451e52cba107d/lucene/core/src/java/org/apache/lucene/internal/vectorization/VectorUtilSupport.java#L25> implementations >> that primarily work with MemorySegment APIs (for example a native >> implementation in # >> <https://github.com/apache/lucene/pull/13572>|13572 >> <https://github.com/apache/lucene/pull/13572>|)| >> >> Issue: https://github.com/apache/lucene/issues/15284 >> PR: https://github.com/apache/lucene/pull/15285 >> >> - Kaival > > -- > Uwe Schindler > Achterdiek 19, D-28357 Bremen > https://www.thetaphi.de > eMail:[email protected] > -- Uwe Schindler Achterdiek 19, D-28357 Bremen https://www.thetaphi.de eMail:[email protected]