- Decouple replication from snapshotting. This makes it possible for the
snapshotter to take snapshots while replication is in progress.
- Implement a set of locking mechanism to prevent parallel issue.
- Protect "held" snapshots from being destroyed, this includes the last
snapshot we have replicated for an incremental transfer, the in-progress
snapshots.
- Try harder to recover from failed transfers.