4.0.0-beta.4 (2025-04-15)
Merged pull requests:
- Release 4.0.0-beta.4 #457 (tlwillke)
- Creating starting point for changelog tracking. #456 (tlwillke)
- Adjust changelog generation steps. #437 (msmygit)
- Fix minor bug in getNodes. #434 (marianotepper)
- Fix/refactor NodeScoreIterator, BoundedLongHeap, and GrowableLongHeap bulk addition implementations #433 (michaeljmarshall)
- Remove extra prefix of v from tag version #432 (msmygit)
- Update only the root level pom.xml as part of the GHA workflow #431 (msmygit)
- Eliminate maven-resources-plugin warning #429 (msmygit)
4.0.0-beta.3 (2025-04-09)
Implemented enhancements:
- Implement NodeQueue#pushAll and AbstractLongHeap#addAll #415 (michaeljmarshall)
Merged pull requests:
- Release 4.0.0-beta.3 #427 (marianotepper)
- Fix calls to deprecated GraphIndex.size() #426 (marianotepper)
- Fix NPE in GraphIndexBuilder.load #425 (marianotepper)
- Merge latest commits from hnsw-3 #423 (marianotepper)
- Update test resume #422 (marianotepper)
- Fix native implementations of PQ assembleAndSum and pqDecodedCosineSimilarity #420 (jkni)
- Reduce the number of vector allocations in BuildScoreProvider.pqBuilderScoreProvider #419 (marianotepper)
- Fix FusedADC.writeInline #417 (marianotepper)
- Rework the computation of accuracy #408 (marianotepper)
4.0.0-beta.2 (2025-04-02)
Merged pull requests:
- Release 4.0.0-beta.2 #414 (marianotepper)
- Count expanded nodes #406 (marianotepper)
- Search pruning & fix the reported number of visited nodes #405 (marianotepper)
- Fix flaky tests and eliminate console output #404 (marianotepper)
- Remove query-time usage of ByteSequence::slice in PQVectors to reduce object allocations #403 (michaeljmarshall)
- Fix TestOnDiskGraphIndex.testReorderingWithHoles #400 (marianotepper)
- add index construction benchmark #398 (sam-herman)
- Optimization for latency reduction in Product Quantization #397 (AbhijitKulkarni1)
- Add jmh benchmarks #396 (sam-herman)
- Fix MutableBQVectors parameterization/encoding #395 (jkni)
- Fix BQVectors#ramBytesUsed and BQVectors#getCompressedSize on empty BQVectors #394 (jkni)
- make example use index view #392 (sam-herman)
- Update Test2DThreshold to control for averages instead of worst-case statistics #391 (marianotepper)
- Fix distance computations in Native provider #389 (marianotepper)
- Change variable names to improve readability #388 (marianotepper)
- Improved use ScoreTracker to avoid wasteful searching for very large k #387 (marianotepper)
- Use ScoreTracker to avoid wasteful searching for very large k #384 (jbellis)
4.0.0-beta.1 (2025-01-09)
Merged pull requests:
- Release 4.0.0-beta.1 #386 (jkni)
- Fix CI on Windows due to missing posix_madvise support #383 (jkni)
- add MADV_RANDOM #382 (jbellis)
- Make ravv usage thread-safe #381 (marianotepper)
- Hand-unroll the SIMD dot product loop #380 (blambov)
- Fix regression in assembleAndSum PQ decoder performance #379 (jkni)
- Non-uniform vector quantization #374 (marianotepper)
3.0.6 (2024-12-24)
Merged pull requests:
3.0.5 (2024-12-23)
Merged pull requests:
- Release 3.0.5 #376 (jkni)
- add GraphIndexBuilder.rescore() for use by C* CompactionGraph #375 (jbellis)
3.0.4 (2024-12-03)
Merged pull requests:
- Release 3.0.4 #373 (jkni)
- Don't use segment hashCode in MemorySegmentVectorFloat #372 (jkni)
- Release 3.0.3 #371 (jkni)
- Store compressed vectors in dense ByteSequence for PQVectors #370 (michaeljmarshall)
- Reenable SimdOps.assembleAndSum; implement Panama/Native equivalent for CosineDecoder acceleration #368 (michaeljmarshall)
- Use fma in VectorSimdOps.cosineSimilarity #366 (jkni)
- Release 3.0.2 #364 (jkni)
- Use fma in SimdOps.cosineSimilarity sum vector #363 (jkni)
- Remove max JDK version check #362 (jkni)
3.0.1 (2024-09-30)
Merged pull requests:
- Release 3.0.1 #361 (jkni)
- Improve performance of reconnectOrphanedNodes #359 (jkni)
- Use float in cosine metric final calculation in default vectorization provider #358 (k-jamroz)
- approximateMediod returns a random node when the graph is too disconnected to search for the centroid #356 (jbellis)
- Remove check for VBMI on CPU #352 (jkni)
- Set IdentityMapper maxOrdinal correctly in Grid/SiftSmall. #351 (jkni)
3.0.0 (2024-08-13)
Merged pull requests:
3.0.0-beta.16 (2024-08-01)
Merged pull requests:
- Release 3.0.0-beta.16 #350 (jkni)
- add support for non-sequential remapped ordinals #349 (jbellis)
- fix global centering and add test that raw computation equals precomputed #346 (jbellis)
3.0.0-beta.15 (2024-07-03)
Merged pull requests:
3.0.0-beta.14 (2024-07-02)
Merged pull requests:
- Release 3.0.0-beta.14 #342 (jkni)
- cache reranked scores to avoid redoing expensive work when resuming #341 (jbellis)
- extract RandomAccessWriter interface from BRAW #340 (jbellis)
3.0.0-beta.13 (2024-06-07)
Merged pull requests:
- Release 3.0.0-beta.13 #338 (jkni)
- Clear scratch structures if search terminates exceptionally #337 (jkni)
- Reduce tendency of reconnectOrphanedNodes to leave orphaned nodes #335 (jkni)
3.0.0-beta.12 (2024-05-29)
Merged pull requests:
- Release 3.0.0-beta.12 #334 (jkni)
- add writeHeader and getPath methods to OnDiskGraphIndexWriter #332 (jbellis)
3.0.0-beta.11 (2024-05-28)
Merged pull requests:
- Release 3.0.0-beta.11 #331 (jkni)
- Implement support for COSINE in fused ADC #329 (jkni)
- Ecapsulate NodeArray internals #328 (jbellis)
- Remove on-disk reranking #327 (jbellis)
- Reduce the per-node overhead of edge lists in OnHeapGraphIndex #325 (jbellis)
- standardize ReaderSupplier implementations as inner classes of their respective RandomAccessReaders, and add a Supplier for SimpleReader #323 (jbellis)
3.0.0-beta.10 (2024-05-17)
Merged pull requests:
3.0.0-beta.9 (2024-05-13)
Merged pull requests:
- Release 3.0.0-beta.9 #319 (jkni)
- Release 3.0.0-beta.8 #318 (jkni)
- always rerank at least the best result found so that caller will have something with which to compare this index's results to others' #317 (jbellis)
- improve memory usage during construction #316 (jbellis)
- add getFeatureSet methods to ODGI and ODGIW #315 (jbellis)
3.0.0-beta.7 (2024-05-08)
Merged pull requests:
- Release 3.0.0-beta.7 #314 (jkni)
- Fix writing jvector2-compatible indexes incrementally #313 (jbellis)
- remove BQ centering #312 (jbellis)
3.0.0-beta.6 (2024-05-06)
Merged pull requests:
- Release 3.0.0-beta.6 #311 (jkni)
- add rerankK to GraphSearcher::search, and worstApproximateScoreInTopK to SearchResult #310 (jbellis)
3.0.0-beta.5 (2024-05-03)
Merged pull requests:
- Release 3.0.0-beta.5 #309 (jkni)
- add ability to write old versions of PQ and ODGI. current version standardized as 3 to avoid confusion #308 (jbellis)
- Check for GCC 11+ instead of failing compile #307 (jkni)
- Fix usage of Float.MIN_VALUE #306 (jkni)
3.0.0-beta.4 (2024-05-02)
Merged pull requests:
- Release 3.0.0-beta.4 #305 (jkni)
- Switch Fused ADC from 32-cluster to 256-cluster PQ, maxDegree 32 graphs #304 (jkni)
- GraphIndexBuilder implements Closeable instead of AutoCloseable #302 (jbellis)
3.0.0-beta.3 (2024-04-22)
Merged pull requests:
- Release 3.0.0-beta.3 #301 (jkni)
- Flesh out support for reranking from inline full/lvq vectors while building graph using pq #300 (jbellis)
- add OrdinalMapper for when can't compute a static map before constructing the OnDiskGraphIndexWriter #299 (jbellis)
- Reuse backing ByteSequence for LVQ vectors in ODGI #298 (jkni)
- Add a memory-mapped RandomAccessReader using MemorySegment api #296 (mdogan)
3.0.0-beta.2 (2024-04-16)
Merged pull requests:
3.0.0-beta.1 (2024-04-12)
Merged pull requests:
- Release 3.0.0-beta.1 #276 (jkni)
- Incremental graph writes, ODGI abstraction allowing features to be combined #275 (jkni)
- remove (broken) concurrency support from removeDeletedNodes #273 (jbellis)
- Reduce allocation by pooling GraphSearcher objects #270 (jbellis)
- Optimize GraphSeacher.visited using inthashset #269 (jbellis)
- Fix packing of LVQ vector dimensionalities not divisible by 64. Introduce test for LVQ similarity. #268 (jkni)
- Remove PQVectors from ADCGraphIndex #267 (jkni)
- make Test2DThreshold less fragile #266 (jbellis)
- Enable JDK 22 CI #258 (jkni)
- Merge 3.0-alpha #256 (jkni)
- Use AVX-512 reduce-add intrinsics #252 (jkni)
- Remove conditional dotProduct/squareDistance in NativeVectorUtilSupport #251 (jkni)
- only compute aMagnitude for cosines once, since it is independent of the query vector #250 (jbellis)
- Fix bytesToRead math in MMapReader.read(int[], int, int) #249 (jkni)
- Concurrent deletes #248 (jbellis)
- Replace NormalDistributionTracker with TwoPhaseTracker #247 (jbellis)
- Use on-heap MemorySegments for native vectors/sequences #246 (jkni)
- Build indexes using compressed vectors #244 (jbellis)
- Reduce repetition in Bench. Factor out more concise methods. #243 (jkni)
- add a diverseBefore marker to avoid recomputing diversity that hasn't changed #242 (jbellis)
- Fix Bench timings on paths performing multiple types of queries #240 (jkni)
- Corrected relative path to access Siftsmall example files #239 (rd-99)
- Fix TestVectorSimilarityFunction test. Add missing license. #237 (jkni)
- Fix indexing into MemorySegment when loading/storing from FloatVector in scale #236 (jkni)
- Bump version to account for 3.0-alpha branch release #234 (jkni)
- Improve quality of bindings with newer jextract version #229 (jkni)
- Improve performance of native vectorization provider #224 (jkni)
- Anisotropic PQ #201 (jbellis)
- Vector abstractions, native code, and fused graphs #191 (jkni)
3.0.0-alpha.7 (2024-03-19)
Merged pull requests:
- Release 3.0.0-alpha.7 #255 (jkni)
- use euclidean similarity for centroid search if the centroid is zero and the index uses cosine similarity #221 (jbellis)
- DenseIntMap concurrency #219 (jbellis)
- Fix flaky ProductQuantization test #217 (jkni)
3.0.0-alpha.6 (2024-02-26)
Merged pull requests:
3.0.0-alpha.5 (2024-02-09)
Merged pull requests:
3.0.0-alpha.4 (2024-02-08)
Merged pull requests:
- Release 3.0.0-alpha.4 #213 (jkni)
- Expose MAX_PQ_TRAINING_SET_SIZE. #212 (jkni)
- add
getCompressor
to CompressedVectors #211 (jbellis)
3.0.0-alpha.3 (2024-02-08)
Merged pull requests:
- Release 3.0.0-alpha.3 #210 (jkni)
- add PQ.refine for when you already built PQ once for a similar set of vectors #209 (jbellis)
- optimize reconnectOrphanedNodes #208 (jbellis)
- Attempt 3 at cleaning up the threadlocal leaks #206 (jbellis)
- Auto-boxing/unboxing reductions, reduce boxed footprint on heap #202 (jkni)
- Remove overzealous dependency exclusion affecting util-mmap #200 (jkni)
- Fix/document unclosed views #195 (jkni)
- Improve GraphIndexBuilder#cleanup doc for concurrent searches #190 (mdogan)
3.0.0-alpha.2 (2024-01-10)
Merged pull requests:
- Release 3.0.0-alpha.2 #186 (jkni)
- Add GraphSearcher::resume #185 (jbellis)
- Search parameters #183 (jbellis)
- Cleanup for 3.0 release #182 (jbellis)
- Handle the case of removing all nodes in the cleanup #181 (mdumandag)
3.0.0-alpha.1 (2024-01-03)
Merged pull requests:
- Release 3.0.0-alpha.1 #179 (jkni)
- Don't create new ScoreTracker.NoOpTracker each time #178 (dlg99)
- Fix DenseIntMap size #177 (mdogan)
- Make GraphIndexBuilder.markNodeDeleted thread-safe #175 (mdogan)
- Remove caching of vectors encountered during search, update reranker interface accordingly #173 (jbellis)
- Parallelize GraphIndexBuilder.removeDeletedNodes() #172 (mdogan)
2.0.5 (2023-12-21)
Merged pull requests:
- Release 2.0.5 #171 (jkni)
- Replace CHM with HashMap in CHMGraphCache #170 (michaeljmarshall)
- Remove ThreadPooling self reference in Pooled object to prevent memory leak #169 (michaeljmarshall)
- Add optional FJP args for indexing and quantization #162 (mdogan)
- PhysicalCoreExecutor can exit gracefully; CachingGraphIndex's cacheDistance can be customized #160 (xjtushilei)
- Fix some bugs #156 (chengsecret)
- Minor typo fix in README.md #155 (FRosner)
- Scrub both fvec/ivec and hdf5 dot product datasets #154 (jkni)
- Use fma in SIMD Euclidean/cosine #153 (jkni)
- Fix usage of null acceptOrds in SiftSmall example #152 (vbekiaris)
2.0.4 (2023-11-10)
Merged pull requests:
- Release 2.0.4 #151 (jkni)
- vectorsEncountered not always in sync with resultQueue, causing NPE when breaking out of loop due to threshold probability #150 (jbellis)
- Run verify phase in CI (which includes license checks) #149 (jkni)
2.0.3 (2023-11-08)
Merged pull requests:
- Release 2.0.3 #148 (jkni)
- add upgrade guide #147 (jbellis)
- Split LongHeap into Growable and Bounded flavors #146 (jbellis)
2.0.2 (2023-11-07)
Merged pull requests:
2.0.1 (2023-11-07)
Merged pull requests:
- Release 2.0.1 #144 (jkni)
- add getOriginalSize and getCompressedSize to CompressedVectors interface #143 (jbellis)
- Cherry-pick various bench improvements from PR #76. #133 (jkni)
2.0.0 (2023-11-06)
Merged pull requests:
- Release 2.0.0 #142 (jkni)
- Fix running single test using Maven commandline #141 (jkni)
- Reconnect orphaned nodes in cleanup() #138 (jbellis)
- Add binary quantization #135 (jbellis)
- Updated download helper #134 (msmygit)
- CI improvement #131 (jkni)
- downloads wikipedia fvec files for 100k, switched to squad based query vectors #130 (phact)
- Addresses issue #36 by adding license header checks. Added headers on… #129 (zznate)
- Adds DenseIntMap for building graph with much less contention. back to zero dependency! #128 (tjake)
- Ipcexample #127 (tjake)
- Fix num/denom distortion for first round of assignments when clustering #121 (jkni)
- Deletes #117 (jbellis)
1.0.2 (2023-10-09)
Merged pull requests:
- Release 1.0.2 #120 (jkni)
- fix mergeNeighbors to not add duplicate nodes, and fix test to check for duplicates #119 (jbellis)
- Mt index build fixes #113 (tjake)
- Fork test VM per core #111 (jkni)
- Add improved test coverage for on-disk graph caching #109 (jkni)
1.0.1 (2023-10-02)
Merged pull requests:
1.0.0 (2023-09-29)
Merged pull requests:
- Release 1.0.0 #107 (jkni)
- Fix SimpleMappedReader to respect offset #106 (jkni)
- Adjust PQ clustering parameters based on experimentation #105 (jkni)
- Add simd approach for summing the cached PQ products of each encoded vector #104 (tjake)
- README tweaks #101 (bradfordcp)
- KMeansPlusPlusClusterer optimizations #100 (jkni)
0.9.3 (2023-09-25)
Merged pull requests:
- Release 0.9.3 #99 (jkni)
- Remove triangle inequality from k means plus plus #98 (jkni)
- Clean up all build warnings related to multimodule versioning. #97 (jkni)
- wikipedia datasets in readme #95 (phact)
- Fragment cache #94 (jbellis)
- Add decodedCosine fast path #91 (jkni)
- Implement optimized decoded square distance #89 (jkni)
- Fix code coverage in IntelliJ #88 (jkni)
- Fix recall regression for centered PQ with non-dot product metrics #84 (jkni)
- move sharing from annotation to method; use that in PQ #83 (jbellis)
- Refactor tests into jvector-tests module. Set up configurations to be able to run tests with JDK11 features and JDK20 features. #75 (jkni)
0.9.2 (2023-09-18)
Merged pull requests:
- Release 0.9.2 #82 (jkni)
- JVECTOR-78 Make Graph and Graph.View AutoCloseable #79 (mike-tr-adamson)
- Minor documentation updates #77 (msmygit)
- Bump readme version #73 (jkni)
0.9.1 (2023-09-15)
Merged pull requests:
0.9.0 (2023-09-14)
Merged pull requests: