
Snapshot takes an io.Writer and writes the entire backend data to the given writer. Snapshot writes a consistent view and does not block other storage operations. Restore restores the in-memory states (index and book keeping) of the storage from the backend data.