Skip to main content

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:
  • 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

The SnapshotEngine 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