What is FreshDiskANN?

FreshDiskANN is a streaming extension of DiskANN-style indexing: it keeps a large Vamana graph mostly on SSD while absorbing recent inserts and deletes in a smaller in-memory structure, then periodically merges those changes into the on-disk index so billion-scale ANN stays searchable under continuous updates without a full rebuild.
Created: Updated: 4 min read

FreshDiskANN is a streaming extension of DiskANN-style indexing: it keeps a large Vamana graph mostly on SSD while absorbing recent inserts and deletes in a smaller in-memory structure, then periodically merges those changes into the on-disk index so billion-scale ANN stays searchable under continuous updates without a full rebuild.

What gap does FreshDiskANN fill relative to static DiskANN?

Classic DiskANN optimizes a flat Vamana graph and compressed in-memory codes for read-heavy, batch-built corpora. Production embedding stores, however, rarely freeze: new items arrive, old ones are deleted, and search must keep high recall while those mutations land. Rebuilding a billion-point SSD index from scratch for every batch is too slow and too memory-hungry. FreshDiskANN’s answer is freshness by design – concurrent real-time inserts, deletes, and searches – with merge cost intended to scale with the size of the change set rather than with the entire collection. The geometric search core remains greedy exploration on a robustly pruned graph; what changes is the storage and update protocol around that core.

The usual shape of that protocol is a long-term disk index plus a short-term memory buffer.

How do inserts, deletes, and merges keep the index fresh?

Fresh inserts are applied with Vamana-style greedy search and robust prune into an in-memory working graph (often called a temporary or fresh index), including the bidirectional edge updates needed for navigability. Deletes are typically lazy at first: the id is tombstoned so searches skip it in results while its edges may temporarily remain so the graph does not tear. When deleted volume grows, a consolidation pass bridges neighbors across deleted nodes and re-prunes affected out-lists back under the degree cap, reclaiming slots. Periodically, a streaming merge folds the in-memory delta – inserts and resolved deletes – into the SSD-resident long-term index in block-wise, write-efficient passes, then clears or shrinks the memory buffer so RAM stays bounded. Search can run against the combined view while merge proceeds in the background, which is the operational definition of “fresh” at disk scale.

That machinery is heavier than in-memory HNSW updates, and the trade-offs follow.

How does FreshDiskANN compare with HNSW updates and static DiskANN?

In-memory HNSW, as used in databases such as Weaviate, can insert continuously and hide deletes with tombstones plus asynchronous cleanup entirely in RAM – excellent for hot, mutable serving when the graph fits memory. Static DiskANN wins on SSD footprint for mostly immutable sets but stalls when the corpus churns. FreshDiskANN sits between them: DiskANN’s RAM-versus-SSD economics with an explicit path for streaming mutations. Weaviate’s public research cited FreshDiskANN while shipping HNSW+PQ and later disk-oriented freshness ideas (such as HFresh) along related “update without full rebuild” themes – different algorithms, same pressure: large indexes must change without overnight rebuilds. FreshDiskANN’s distinctive signature remains the Vamana-on-SSD plus memory-delta merge pipeline.

Whether you need that pipeline depends on churn, scale, and latency tolerance.

When is FreshDiskANN the right mental model or system choice?

Reach for FreshDiskANN-style designs when the vector set is too large for comfortable all-in-RAM HNSW, updates are continuous, and SSD latencies are acceptable. Prefer static DiskANN when rebuilds are rare. Prefer in-memory HNSW when interactive latency and simpler incremental graph maintenance dominate. Watch merge frequency, tombstone backlog, and recall after consolidations – freshness fails quietly when the memory delta grows unbounded or deletes never bridge. FreshDiskANN is how disk-scale graph ANN learned to keep up with a living dataset.

FreshDiskANN adds streaming inserts, lazy deletes, and SSD merge to DiskANN’s Vamana-based disk search so large indexes stay accurate under continuous change. From here, DiskANN and Vamana cover the static graph and disk layout underneath, offline versus incremental graph construction frames the broader update spectrum, CAGRA turns to GPU graph ANN, and HNSW chapters show the in-memory mutability alternative used in systems like Weaviate.