Snapshots
VortexDB’s snapshot system provides point-in-time backups of your entire database, including both the index topology and stored data.Overview
A snapshot captures:- Index topology: The structure of your index (graph edges, tree nodes, etc.)
- Index metadata: Configuration specific to the index type
- Storage data: All vectors and their payloads
- Database metadata: Dimensions, timestamps, version info
How It Works
Creating a Snapshot
The snapshot process involves two parallel operations:1
Index Serialization
The index serializes its topology and metadata into binary format:
2
Storage Checkpoint
The storage backend creates a consistent checkpoint:For RocksDB, this uses the native checkpoint API for efficiency.
3
Manifest Generation
A manifest file is created with:
- Snapshot UUID
- Timestamp
- Parser version (for compatibility)
- SHA-256 checksums of all files
4
Archive Creation
All files are bundled into a compressed tarball (
.tar.gz).Restoring a Snapshot
1
Extract Archive
The tarball is extracted to a temporary directory.
2
Verify Checksums
All file checksums are verified against the manifest.
3
Version Check
The parser version is checked for compatibility.
4
Restore Storage
The storage checkpoint is restored first.
5
Rebuild Index
The index is deserialized from topology and metadata, then populated with vectors from storage.
Index-Specific Serialization
Each index type has its own serialization format:- Flat Index
- KD-Tree
- HNSW
- Topology: List of point IDs in insertion order
- Metadata: Minimal (just magic bytes)
- Restore: O(n) - simply rebuild the vector list
Snapshot Data Structures
Snapshot Object
Index Snapshot
Storage Checkpoint
Snapshot Engine
TheSnapshotEngine manages snapshot creation and restoration:
Registry Interface
Manifest Format
The manifest (manifest.json) contains all metadata needed for restore:
Next Steps
Architecture
Understand how components fit together
Indexers
Choose the right index for your use case