Remix.run Logo
xelxebar 3 hours ago

The snapshot system in gefs is really quite nice.

By default, you get snapshots every minute for the last hour, every hour for the last day, and every day into perpetuity. This is configurable. You can set as many cadences as you wish, with the ability to configure their frequency and lifetimes.

Actually, snapshots are like btrfs volumes in many ways, meaning they can be mounted, read from, and written to as desired. This allows the filesystem root to just be another snapshot with a default backup cadence as described above.

The gefs(4) manpage [0] has more info for those interested. It's a short and sweet read. The source [1], is under 12k lines of well-written code, comments and whitespace included. The author is also extremely responsive to issues and a pleasure to talk shop with.

Anyway, given the parsimony of the OS and the small community size, I find 9front to be a really nice incubator for playing around with new ideas.

[0]:https://man.9front.org/4/gefs [1]:https://git.9front.org/plan9front/9front/front/sys/src/cmd/g...

craftkiller an hour ago | parent [-]

FWIW that snapshot system sounds almost the same as zrepl with zfs. The only difference being the zfs snapshots are read-only so you'd have to do a zfs send+recv to a dataset to mount it read/write. That and the defaults for the tiered snapshotting are different (mine is set to a snapshot every hour for the past day and every day for the past 2 weeks but I don't know what the default is).

nagaiaida an hour ago | parent [-]

zfs clone creates a writable dataset initially backed by a snapshot (and will prevent that snapshot from being deleted without first deleting the clone, even if entirely ship-of-theseused out of sharing any data with it)