Skip to content
Merged
Show file tree
Hide file tree
Changes from 109 commits
Commits
Show all changes
124 commits
Select commit Hold shift + click to select a range
345b9d1
MOD-14916 Devirtualize HNSW / brute-force search hot path (#937)
ofiryanai Apr 19, 2026
4e0412e
initial
razdoburdin Jun 23, 2026
3f987c1
optimization
razdoburdin Jun 26, 2026
f2fe02f
fix threadpool
razdoburdin Jun 26, 2026
f806dca
minor fix
razdoburdin Jun 26, 2026
28503c2
minor cleaning
razdoburdin Jun 29, 2026
f2596b3
clean up
razdoburdin Jul 1, 2026
6dc0722
remove dead code
razdoburdin Jul 1, 2026
402691f
fixes; tests pass
razdoburdin Jul 8, 2026
139161f
refactoring
razdoburdin Jul 8, 2026
f8efbbe
fixes for GC
razdoburdin Jul 15, 2026
cfca2f5
copy blob before flat unlock
razdoburdin Jul 20, 2026
dcbdf54
Remove null characters from end of file
mihaic Jul 24, 2026
fe7dd9c
Merge pull request #1 from mihaic/lockfree-fix-end
razdoburdin Jul 25, 2026
aeae737
fixes for gc
razdoburdin Jul 28, 2026
47508f2
Merge branch 'lockfree' of https://github.com/razdoburdin/VectorSimil…
razdoburdin Jul 28, 2026
07cd22f
fix writer starvation for compaction
razdoburdin Jul 30, 2026
f24187b
adopt sigle label consolidation
razdoburdin Aug 11, 2026
f4a8f52
vecsim separate fin-grain index enabling
ethanglaser Aug 22, 2026
a603e6d
Rename SVSIndexBase thread API to match upstream
ethanglaser Aug 27, 2026
2eb0037
Merge upstream/main into dev/eglaser-lockfree
ethanglaser Aug 27, 2026
baff6de
CI fixes
ethanglaser Sep 2, 2026
325f7b5
clean-up commented and unused dead code
razdoburdin Sep 3, 2026
1051095
harmonize test
razdoburdin Sep 3, 2026
63758e1
Merge branch 'main' into dev/eglaser-lockfree
razdoburdin Sep 4, 2026
b8b57e3
minor revisions for CI
ethanglaser Sep 4, 2026
b530842
fix build and tests
razdoburdin Sep 7, 2026
7b25c70
Merge branch 'dev/eglaser-lockfree' of https://github.com/ethanglaser…
razdoburdin Sep 7, 2026
7e66fea
fix ub
razdoburdin Sep 8, 2026
7213909
use SVS rc
ethanglaser Sep 9, 2026
37884f4
fix TestIndexMultiValueJsonReload
razdoburdin Sep 10, 2026
5866342
clang format
razdoburdin Sep 10, 2026
0b9d552
cland-format-18
razdoburdin Sep 10, 2026
1e243b2
num_marked_deleted tracks not compacted entries now
razdoburdin Sep 10, 2026
c02526c
clean-up and fix
razdoburdin Sep 11, 2026
7595df0
update SVS submodule reference
ethanglaser Sep 11, 2026
c93af4a
Merge RedisAI/main into dev/eglaser-lockfree
ethanglaser Sep 11, 2026
0d15167
Fix semantic fallout from the main merge
ethanglaser Sep 11, 2026
2ab67cc
Satisfy check-format
ethanglaser Sep 11, 2026
5bf9f6a
improve svs pimpl guarding for concurent execution
razdoburdin Sep 14, 2026
86bc659
resolve conflicts
razdoburdin Sep 14, 2026
b50cd0d
format
razdoburdin Sep 14, 2026
17b848d
fix leaking consolidate jobs
razdoburdin Sep 14, 2026
a5cb99d
resubmit insert job if backend isn't ready
razdoburdin Sep 14, 2026
e3c0cbf
use RAII lock to harmonize topKQuery and rangeQuery
ahuber21 Sep 14, 2026
0ca3a58
fix and optimize
razdoburdin Sep 14, 2026
c33365f
generalize SharedMutexLockable and harominze SVS/HNSW functions with …
ahuber21 Sep 14, 2026
41ba833
move droping of gc schdule flag
razdoburdin Sep 14, 2026
ffd45d9
cleanup comments
ahuber21 Sep 14, 2026
e0ccdaa
fixup
ahuber21 Sep 14, 2026
7b2b646
fix comment formatting
ahuber21 Sep 14, 2026
375103d
Harmonize lockfree SVS and HNSW
ethanglaser Sep 14, 2026
5f5c0f2
add missing file
ahuber21 Sep 14, 2026
7dc20e5
use SVS rc2 binaries and latest submodule
ethanglaser Sep 15, 2026
9f445ac
fix iterator
razdoburdin Sep 15, 2026
36399e6
Merge branch 'dev/eglaser-lockfree' of https://github.com/ethanglaser…
razdoburdin Sep 15, 2026
ef98126
Merge upstream/main into dev/eglaser-lockfree
razdoburdin Sep 15, 2026
d934af9
relabelVector: switch check to concurent; rewrite impl call logic
razdoburdin Sep 15, 2026
da8a1d4
Merge branch 'main' into dev/eglaser-lockfree
razdoburdin Sep 15, 2026
89cd9b7
harmonize svs and hnsw tiered job types
ahuber21 Sep 15, 2026
4768855
Revert "harmonize svs and hnsw tiered job types"
ahuber21 Sep 15, 2026
27e06fe
Merge remote-tracking branch 'upstream/main' into dev/eglaser-lockfree
ahuber21 Sep 15, 2026
6248c25
adopt relabelVector for concuren svs
razdoburdin Sep 15, 2026
2b2f710
Merge branch 'dev/eglaser-lockfree' of https://github.com/ethanglaser…
razdoburdin Sep 15, 2026
b641f17
move hnsw/svs tierd common logic to the base class
razdoburdin Sep 16, 2026
f36ff4b
format
razdoburdin Sep 16, 2026
93a5151
upstream getDistanceFrom_Unsafe
ahuber21 Sep 16, 2026
1e43b2b
fix Full-buffer overwrite skips pending jobs
razdoburdin Sep 16, 2026
99314d2
fix Init overwrite reports a new insert
razdoburdin Sep 16, 2026
73b23be
fix Empty index skips compression retraining
razdoburdin Sep 16, 2026
4a989aa
update comment for GC compacts without consolidating deletes
razdoburdin Sep 16, 2026
53d1843
Merge branch 'dev/eglaser-lockfree' of https://github.com/ethanglaser…
razdoburdin Sep 16, 2026
56aeef9
fix Insert job can reinit dropped backend
razdoburdin Sep 16, 2026
00b292a
modify comments
razdoburdin Sep 16, 2026
fd7c0d0
fix Relabel races pending multi-value ingest
razdoburdin Sep 16, 2026
03f803a
bump glibc version error message to 2.28
ethanglaser Sep 16, 2026
7574239
format
razdoburdin Sep 16, 2026
1a3162a
Merge branch 'dev/eglaser-lockfree' of https://github.com/ethanglaser…
razdoburdin Sep 16, 2026
3a9d64c
fix Relabel duplicates in-flight ingested vectors
razdoburdin Sep 16, 2026
0c0cdbf
resolve conflict
razdoburdin Sep 23, 2026
516a324
fix -Werror=sign-compare
razdoburdin Sep 23, 2026
462cbbe
unify compute_current_batch
razdoburdin Sep 23, 2026
572efab
svs pimpl is initalized once and never reset
razdoburdin Sep 24, 2026
ab87a6e
format
razdoburdin Sep 24, 2026
8f21456
clean-up and unify
razdoburdin Sep 24, 2026
07465f1
fixes
razdoburdin Sep 26, 2026
d1e06ca
Update to SVS rc3 binaries
ethanglaser Sep 28, 2026
61baa1f
update submodule
ethanglaser Sep 28, 2026
d3cdace
harminize tests
razdoburdin Sep 29, 2026
93ca504
Merge branch 'dev/eglaser-lockfree' of https://github.com/RedisAI/Vec…
razdoburdin Sep 29, 2026
39d98be
update to SVS rc4 binaries
ethanglaser Sep 29, 2026
4ce4ad7
guard tests
razdoburdin Sep 29, 2026
368dbd6
Revert "guard tests"
razdoburdin Sep 29, 2026
46e6da9
update SVS to rc5
ethanglaser Sep 29, 2026
0cc22dc
add more tests
razdoburdin Sep 30, 2026
731b6ed
merge main
razdoburdin Sep 30, 2026
261b0f1
SVS rc6
ethanglaser Oct 2, 2026
46fc96b
merge main
razdoburdin Oct 5, 2026
732e5e5
format
razdoburdin Oct 5, 2026
f14687a
refactor switch-case in relabelVector
razdoburdin Oct 5, 2026
7578eee
remove unused index_
razdoburdin Oct 5, 2026
a34064d
reduce flatIndexGuard scope
razdoburdin Oct 5, 2026
5b9be33
adopt set once for svs pimpl
razdoburdin Oct 6, 2026
673174b
fixes and additional tests
razdoburdin Oct 7, 2026
a54595b
format
razdoburdin Oct 7, 2026
c68edce
merge main
razdoburdin Oct 7, 2026
a9616ac
GC takes mainIndexGuard to protect baseclass methods
razdoburdin Oct 7, 2026
38c48eb
bump to SVS rc7
ethanglaser Oct 7, 2026
315a89b
don't lock mainthread while training
razdoburdin Oct 12, 2026
6f76269
buffer added vectors during initSVSIndex
razdoburdin Oct 15, 2026
3b2f08e
close delete-after-impl_publish window
razdoburdin Oct 15, 2026
9521bcf
update initDeletedLabel comment
razdoburdin Oct 15, 2026
9092cb6
update relabelVector comment
razdoburdin Oct 15, 2026
9ce1c6d
format
razdoburdin Oct 15, 2026
46dfcd1
add test
razdoburdin Oct 15, 2026
24cb709
don't create insert jobs while initilizing svs; add tests
razdoburdin Oct 16, 2026
548930a
format
razdoburdin Oct 16, 2026
7878b1c
SVS rc8
ethanglaser Oct 16, 2026
b455ebc
SVS rc9
ethanglaser Oct 16, 2026
6e63a36
rc10; modify after init drain logic
razdoburdin Oct 19, 2026
cad9c48
format
razdoburdin Oct 19, 2026
6b9fed8
fix Init scheduled under exclusive flat lock
razdoburdin Oct 19, 2026
36ff941
adress comments: add more descriptions and tests
razdoburdin Oct 19, 2026
c117c24
format
razdoburdin Oct 19, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 5 additions & 7 deletions cmake/svs.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ if(USE_SVS)
if (CMAKE_CXX_COMPILER_ID MATCHES "Clang")
if(GLIBC_VERSION VERSION_GREATER_EQUAL "2.31" AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL "21.0")
if(GLIBCXX_VERSION VERSION_GREATER_EQUAL "11")
set(SVS_URL "https://github.com/intel/ScalableVectorSearch/releases/download/v0.3.2/svs-shared-library-reduced-clang21-gcc11.tar.gz" CACHE STRING "SVS URL")
set(SVS_URL "https://github.com/intel/ScalableVectorSearch/releases/download/nightly/svs-shared-library-0.5.0rc7-reduced-clang21-gcc11.tar.gz" CACHE STRING "SVS URL")
else()
message(STATUS "libstdc++ >= GCC 11 is required for Clang SVS binaries - disabling SVS_SHARED_LIB")
set(SVS_SHARED_LIB OFF)
Expand All @@ -76,14 +76,12 @@ if(USE_SVS)
else()
if(GLIBC_VERSION VERSION_GREATER_EQUAL "2.28")
if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL "14.0")
set(SVS_URL "https://github.com/intel/ScalableVectorSearch/releases/download/v0.3.2/svs-shared-library-reduced-gcc14.tar.gz" CACHE STRING "SVS URL")
set(SVS_URL "https://github.com/intel/ScalableVectorSearch/releases/download/nightly/svs-shared-library-0.5.0rc7-reduced-gcc14.tar.gz" CACHE STRING "SVS URL")
else()
set(SVS_URL "https://github.com/intel/ScalableVectorSearch/releases/download/v0.3.2/svs-shared-library-reduced.tar.gz" CACHE STRING "SVS URL")
set(SVS_URL "https://github.com/intel/ScalableVectorSearch/releases/download/nightly/svs-shared-library-0.5.0rc7-reduced.tar.gz" CACHE STRING "SVS URL")
endif()
elseif(GLIBC_VERSION VERSION_GREATER_EQUAL "2.26")
set(SVS_URL "https://github.com/intel/ScalableVectorSearch/releases/download/v0.3.0/svs-shared-library-0.3.0-reduced-glibc2_26.tar.gz" CACHE STRING "SVS URL")
else()
message(STATUS "GLIBC >= 2.26 is required for GCC SVS binaries - disabling SVS_SHARED_LIB")
message(STATUS "GLIBC >= 2.28 is required for GCC SVS binaries - disabling SVS_SHARED_LIB")
set(SVS_SHARED_LIB OFF)
endif()
endif()
Expand Down Expand Up @@ -128,7 +126,7 @@ if(USE_SVS)
# so whether it is available depends on which SVS this build ended up with rather than on the
# platform. Detect it in the header instead of assuming: it is a method, not a file, so this
# greps the header the LVQ check would have tested for existence.
set(SVS_DYNAMIC_INDEX_HEADER "svs/index/vamana/dynamic_index.h")
set(SVS_DYNAMIC_INDEX_HEADER "svs/concurrent/dynamic_index.h")
set(SVS_HAS_REPLACE_EXTERNAL_ID 0)
if(EXISTS "${svs_SOURCE_DIR}/include/${SVS_DYNAMIC_INDEX_HEADER}")
file(READ "${svs_SOURCE_DIR}/include/${SVS_DYNAMIC_INDEX_HEADER}" SVS_DYNAMIC_INDEX_SRC)
Expand Down
2 changes: 1 addition & 1 deletion deps/ScalableVectorSearch
353 changes: 57 additions & 296 deletions src/VecSim/algorithms/hnsw/hnsw_tiered.h

Large diffs are not rendered by default.

Loading
Loading