Crate dbs_snapshot

Source
Expand description

Provides version tolerant serialization and deserialization facilities and implements a persistent storage format for Firecracker state snapshots.

The Snapshot API manages serialization and deserialization of collections of objects that implement the Versionize trait.

|––––––––––––––|

64 bit magic_id
SnapshotHdr
––––––––––––––
State
––––––––––––––
optional CRC64
––––––––––––––

Each structure, union or enum is versioned separately and only needs to increment their version if a field is added or removed. For each state snapshot we define 2 versions:

  • the format version which refers to the SnapshotHdr, CRC, or the representation of primitives types (currently we use versionize that uses serde bincode as a backend). The current implementation does not have any logic dependent on it.
  • the data version which refers to the state.

Structs§

Snapshot
The Snapshot API manages serialization and deserialization of collections of objects that implement the Versionize trait.

Enums§

Error
Error definitions for the Snapshot API.

Traits§

Persist
An abstract interface for saving/restoring a component using a specific state.