v0.23.0
slater 0.23.0 — FreshDiskANN: writable disk-native vector search
This release makes embeddings a first-class writable value. Vector search was
previously a read-only, build-time index (cosine only); it is now a full write ladder
you can insert into, update, and delete from in place — without an offline rebuild —
and it gains the L2 and dot-product (MIPS) metrics alongside cosine.
Highlights
- Writable embeddings.
SET n.embedding = vecf32([…])andREMOVE n.embedding
land in the write delta and are immediately KNN-visible with exact rank, then survive
a segment flush, a merge, and a consolidation. - A three-level read path. A query merges a sealed base index, a sealed per-segment
index, and an in-memory RW-index (a live mutable Vamana over the delta), so KNN
latency stays flat as writes accumulate instead of growing with the pending-write
count. - Deletes stop costing query IO. A deleted vector becomes a navigational hole that a
background delete-consolidation splices out of the graph; measured ~3x fewer node
fetches per query at 67% deleted, at equal recall. - Consolidation without a rebuild. Because the on-disk graph addresses neighbours by
layout position rather than node id, a consolidation carries the Vamana graph by
reference — hard-linked, byte-identical — and rewrites only a small id column, folding
vector writes into the base without the O(N) graph reconstruction. - cosine / L2 / dot indexes (dot via a norm-augmentation transform).
- A committed performance bench suite (
crates/slater/benches/) and a written report
(docs/PERF-REPORT.md).
Upgrade note
- On-disk format 7 → 8: rebuild required. Existing generations must be rebuilt with
the 0.23.0 builder; the server refuses an older format legibly rather than misreading
it. There are no legacy installs to migrate.
Full Changelog: v0.22.1...v0.23.0