
Venti: a new approach to archival storage (2002) - rbc
http://plan9.bell-labs.com/sys/doc/venti/venti.html
======
thu
The idea of a Merkle tree[0] is used in Git and Bup[1] actually splits files
into ~8k blobs, using Git as its data store.

Edit: what would be the state-of-the-art Git store format ?

[0]:
[http://en.wikipedia.org/wiki/Merkle_tree](http://en.wikipedia.org/wiki/Merkle_tree)
[1]: [https://github.com/bup/bup](https://github.com/bup/bup)

------
seanwoods
I recently discovered Ugarit and although I haven't used it at all, it traces
its lineage back to Venti (and also Git).

Not sure how mature it is, but might interest some:

[https://www.kitten-
technologies.co.uk/project/ugarit/doc/tru...](https://www.kitten-
technologies.co.uk/project/ugarit/doc/trunk/README.wiki)

------
4ad
Somewhat related, I posted this here some time ago:
[https://news.ycombinator.com/item?id=7877328](https://news.ycombinator.com/item?id=7877328)

I do use venti outside of Plan 9 too. The CAS model is very simple, and the
data is very simple to manage. Unfortunately, it screaks a lot compared to
Plan 9, but it works, and I have daily versioning for all my files.

/edit: quoting on this site sucks, I gave up.

------
cmurf
GlusterFS offers WORM volumes. Volumes made available with NFS/SMB.

------
Bud
Date: somewhere around late 2001 to early 2002.

The latest-dated reference is from 2001.

~~~
rbc
True, but how many modern file system solutions provide snapshots for all
users. Fossil and Venti will do that for you.

~~~
cmurf
ZFS, Btrfs do this with COW. NTFS (volume snapshot service) and ReFS makes it
COW. LVM2 offers a new thinp COW based snapshot that could make this work for
any filesystem.

Edit: And Apple's CoreStorage also has some kind of COW capability at least
when used for "fusion" drives. And then Time Machine and OSTree are
effectively COW as well. The trick here is how to make what's written, read-
only and thus write once. Btrfs at least has the concept of read-only seed
devices, which can be put together in sequence, but might need some work to
make it fit better with this use case.

~~~
enneff
IIUC both ZFS and btrfs require that you be root to work with file system
snapshots.

~~~
4ad
Solaris has a fine-grained privilege model where you can delegate any aspect
of any dataset to any user. However, FreeBSD and Linux don't have this, so on
those systems you have to be root to do snapshots.

~~~
enneff
Ah, I see. I've only used ZFS on FreeBSD so I guess I'm missing out. Thanks.

