Add DiskANN index for vec0 virtual table

Add DiskANN graph-based index: builds a Vamana graph with configurable R
(max degree) and L (search list size, separate for insert/query), supports
int8 quantization with rescore, lazy reverse-edge replacement, pre-quantized
query optimization, and insert buffer reuse. Includes shadow table management,
delete support, KNN integration, compile flag (SQLITE_VEC_ENABLE_DISKANN),
release-demo workflow, fuzz targets, and tests. Fixes rescore int8
quantization bug.
This commit is contained in:
Alex Garcia 2026-03-29 19:46:53 -07:00
parent e2c38f387c
commit 575371d751
23 changed files with 6550 additions and 135 deletions

View file

@ -3,6 +3,31 @@
-- "baseline"; index-specific branches add their own types (registered
-- via INDEX_REGISTRY in bench.py).
CREATE TABLE IF NOT EXISTS runs (
run_id INTEGER PRIMARY KEY AUTOINCREMENT,
config_name TEXT NOT NULL,
index_type TEXT NOT NULL,
subset_size INTEGER NOT NULL,
phase TEXT NOT NULL DEFAULT 'both', -- 'build', 'query', or 'both'
status TEXT NOT NULL DEFAULT 'pending',
k INTEGER,
n INTEGER,
db_path TEXT,
insert_time_s REAL,
train_time_s REAL,
total_build_time_s REAL,
rows INTEGER,
file_size_mb REAL,
mean_ms REAL,
median_ms REAL,
p99_ms REAL,
total_query_ms REAL,
qps REAL,
recall REAL,
created_at TEXT NOT NULL DEFAULT (datetime('now')),
finished_at TEXT
);
CREATE TABLE IF NOT EXISTS build_results (
config_name TEXT NOT NULL,
index_type TEXT NOT NULL,