Skip to content

v0.23.0

Choose a tag to compare

@github-actions github-actions released this 15 Jul 16:17

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([…]) and REMOVE 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