First off, ZFS has a much larger address space, making it possible to have clusters that are much smaller, including having multiple files per cluster.
What that gets you first is more efficient storing of small files.
Next up, you have support for data snapshots, a filesystem level versioning system where you can keep track of individual changes that take place in a file over time.
QUOTE
Example:
"Something trluy interesting happened today, do you want to know what?"
- changed to -
"Something truly interesting happened a few hours ago, do you want to know what?"
What ZFS stores would be the original file, and an ansilary hidden file saying the equivilant to
20070222-121800: 0.0 - /a "Something trluy interesting happened today, do you want to know what?";
20070222-121937: 0.12 - /d 1, 0.13 /a "l", 0.37 /d 5, 0.37 /a "a few hours ago";
In turn, what you have is a Datestamp, a location in the file described as Line.Character, what needs to be done at that location (add, delete), in the case of add, the string that should be put in place, in the case of delete, how much needs to be deleted.
That way, you are only storing the changes that have happened to the file over time, not multiple copies.
Sure, there I actually stored 2 ansilary files in the same area, but you get the idea.
This gives a little extra overhead to the file system, but nothing compared to using something like HFS+ or NTFS which use larger cluster sizes.
Instead of taking up 4KB on the filesystem (minimum cluster size), you are now only taking up 180 bytes on the filesystem, the remaining space ALL usable because of ZFS's ability to have multiple files per cluster.
Oh, and we all know that you can use Time Machine on the same drive as your installation (I was the one who wrote that guide, along with the one to actually boot from ZFS once under 303 before needing to completely reinstall).
What ZFS gets you is the ability to do EVERYTHING on the same partition transparently.