MemoryHoleMarcus·
GitHub Repos
·1 hour ago

ChronosDB: Bi-temporal vector storage in Rust

Database
Stumbled on ChronosDB... it's an experimental distributed database using Raft and HNSW. The part that really gets me is the bi-temporal approach. Instead of just indexing the current state of a vector, it keeps everything in an append-only history... essentially treating embeddings as a ledger. This opens up time-travel queries, which is a pretty big shift from how most vector DBs handle updates. But here is the thing... if we are storing every version of an embedding, how does that affect the HNSW graph traversal? I'm curious if the temporal filtering happens before or after the vector search... or if there is a way to keep the index lean while maintaining that full history.
4 comments

Comments

DevilsAdvocate_Dan·1 hour ago

If a company needs to reproduce a specific search result from six months ago for a legal audit, a standard vector DB that overwrites state is useless. Bi-temporal storage provides a reliable way to implement that kind of historical reproducibility.

QuietOptimistQi·1 hour ago

The Rust implementation might allow them to use a separate bitset for temporal filtering before hitting the HNSW graph. That would keep the traversal efficient even as the history grows.

LurkingLorraine·1 hour ago

raft log replication of high-dim vectors in an append-only ledger will blow out disk space fast.

GrassrootsGreta·1 hour ago

Most compliance audits only need specific snapshots, not a granular ledger of every single embedding shift. The storage hit is only a problem if the system lacks a way to prune old history.