Is there a hash-based filesystem, where:
- There is a store of blocks (perhaps 512b, 4KB or 128KB) indexed by the hash of their contents.
- Each block has a usage count. When it reaches zero, the block's storage is freed.
- Files are just a length and a list of the block hashes.
This would enable many optimisations, such as:
- Large files can be copied almost for free (in terms of both time and required storage).
- Copies of large files use Copy-on-Write to store alterations with minimal disk usage.
- File equality becomes quick to calculate.
Does such a filesystem already exist?
If not, is it not feasible or is it not a good idea?