sftf
2008-Jan-21 19:59 UTC
[Btrfs-devel] Somthing like "userlevel transactions"? [WAS Booting from snapshot and more...]
Hi! Sorry, I was wrong thinking about booting from snapshot... So now, will be possible with btrfs scenario like this: - make (writable?) snapshots of whole system (all filesystems) before dangerous things - do what we want (upgrade, install new software...) - then "apply" these changes and remove those snapshots or "rollback" changes by (re)booting, mounting snapshots and discarding changes since these snapshots. Or even: - explicitly start transaction(s) on filesystem(s) with userspace tool (btrfsctl) - do what we want - commit or rollback transaction (like in RDBMS) Thanks!
Chris Mason
2008-Jan-22 06:10 UTC
[Btrfs-devel] Somthing like "userlevel transactions"? [WAS Booting from snapshot and more...]
On Monday 21 January 2008, sftf wrote:> Hi! > Sorry, I was wrong thinking about booting from snapshot... > So now, will be possible with btrfs scenario like this: > - make (writable?) snapshots of whole system (all filesystems) before > dangerous things > - do what we want (upgrade, install new software...) > - then "apply" these changes and remove those snapshots or > "rollback" changes by (re)booting, mounting snapshots and discarding > changes since these snapshots.Yes, the above would be possible, as long as rollback was considered a manual operation. The FS can't know how the files are being used, so it can't just replace them with older versions.> > Or even: > - explicitly start transaction(s) on filesystem(s) with userspace tool > (btrfsctl) - do what we want > - commit or rollback transaction (like in RDBMS)Unfortunately, the kinds of transactions that userland wants don't mix well with the kernel. Basically the kernel needs to be able to close transactions sometimes in order to reclaim memory and disk space. It might also need to do it for events like sync or snapshot creation. A userland transaction can run forever, and it implies a transaction abort if the process dies before it commits. This is very different from the transactions done in the kernel now. It is definitely an interesting problem, but well outside the scope of Btrfs' current feature list. -chris