{
  "slug": "rocksdb-backup-engine",
  "term": "RocksDB BackupEngine",
  "aliases": [
    "BackupEngine"
  ],
  "definition": "RocksDB BackupEngine manages backup recovery points, their file metadata and restoration into a database directory.",
  "note": "Recovery points have backup IDs. With file sharing enabled, backups reuse SST and blob files in their repository rather than duplicating unchanged files. [backup-doc]\n\nCreateBackupOptions::flush_before_backup defaults to false; set it true for no-WAL writes. BackupEngineOptions::sync defaults to true and controls the documented crash guarantee. [backup-api]\n\nVerifyBackup(id) checks presence and size by default; passing true also compares checksums. [backup-api] Neither mode starts the application, so successful verification is not an application restore test. [backup-code]\n\nSource-file protection needs a compatible earlier checksum, not just a digest first computed while copying. The v10.10.1 creation path requests stored source checksums for FileChecksumGenCrc32cFactory. Incremental creation can reuse backup files and their prior checksum without rereading them; successful creation is not a fresh integrity scan. [backup-code]",
  "related": [
    "rocksdb-read-snapshot",
    "rocksdb-checkpoint",
    "backup",
    "backup-manifest",
    "backup-verification",
    "restore-test",
    "incremental-backup",
    "write-ahead-log",
    "checksum",
    "rocksdb-manifest"
  ],
  "citations": [
    {
      "id": "backup-api",
      "title": "RocksDB v10.10.1. backup_engine.h: backup creation, synchronization and verification.",
      "url": "https://github.com/facebook/rocksdb/blob/v10.10.1/include/rocksdb/utilities/backup_engine.h",
      "accessed": "2026-10-17"
    },
    {
      "id": "backup-doc",
      "title": "RocksDB project. How to backup RocksDB: sharing, restore and backup metadata.",
      "url": "https://github.com/facebook/rocksdb/wiki/How-to-backup-RocksDB",
      "accessed": "2026-10-17"
    },
    {
      "id": "backup-code",
      "title": "RocksDB v10.10.1. backup_engine.cc: VerifyBackup implementation.",
      "url": "https://github.com/facebook/rocksdb/blob/v10.10.1/utilities/backup/backup_engine.cc",
      "accessed": "2026-10-17"
    },
    {
      "id": "hesela",
      "title": "Hesela: RocksDB capture and recovery boundaries.",
      "url": "https://hesela.com/analyses/rocksdb-wal-flush-manifest-boundaries/#capture-boundaries",
      "accessed": "2026-10-17"
    }
  ],
  "provenance": [
    "API defaults and verification behavior are scoped to RocksDB v10.10.1. Backup file sharing does not establish independent storage failure domains."
  ],
  "status": "shipping",
  "advantages": [],
  "limitations": [],
  "supersedes": [],
  "supersededBy": [],
  "firstSeen": null,
  "lastSeen": null,
  "updated": "2026-10-17"
}
