ab08944aa7
After receiving feedback on the `snapshot.Driver` interface, it was found that the behavior of active and committed snapshots was confusing. We attempt to clean this up by doing the following: 1. Define the concept of "active" and "committed" snapshots and their lifecycle relationship. Active snapshots can be created from a parent. Committed snapshots can only be created from active snapshots. 2. Only committed snapshots can be a parent. 3. Unify the keyspace of snapshots. For common operations, such as removal and stat, we only have a single method that works for both active and committed snapshots. For methods that take one or the other, the restriction is called out. `Remove` and `Delete` are consolidated for this purpose. 4. Define the `Info` data type to include name, parent, kind and readonly state. This allows us to collect `Exists` and `Parent` into a single method `Stat` and simplifies the `Walk` method, eliding `Active`. 5. The `Driver` has been renamed to `Snapshotter` due to the overuse of the term `Driver`. Effectively, we now have snapshots that are either active or committed. Signed-off-by: Stephen J Day <stephen.day@docker.com> |
||
---|---|---|
.. | ||
btrfs | ||
naive | ||
overlay | ||
snapshotter.go |