Skip to content

Data model

Every object is addressed by a SHA-256 hash derived from its content.

Object Holds
commit one snapshot of a set: its tree, when, and which agent
tree a directory: names pointing at files and subtrees
file the chunks a file is made of, in order
chunk a piece of content, cut with FastCDC

The same chunk is stored once across files, commits and sets. A backup uploads only what the store doesn’t already hold, and a restore downloads only what the target doesn’t already hold.

Objects are packed into archives, and each archive has its own index of what it holds. Compaction merges small archives. Garbage collection rewrites archives that are mostly dead.

A set is a named series of commits, such as one machine’s home directory or one database’s WAL. Each set has its own retention. Deduplication works across the whole store. Names group sets, as described in Sets.