3 ms·
You don't really need that much functionality, a copy-on-write filesystem with fine-grained access to historical data. Once you have that, you can easily acces
by mrighele 5y ago
You don't really need that much functionality, a copy-on-write filesystem with fine-grained access to historical data.
Once you have that, you can easily access the old version of a file and that is probably 90% of the functionality that you need without many changes to the software (regular automatic saves and ability to access old versions from the program itself).
While there are a number of copy-on-write filesystems around (ZFS, btrfs), most of them don't have fine-grained access to historical data, but only through snapshots. One exception is them HAMMER fs from DragonFlyBSD [1], though I don't if this is still true (HAMMER2 seems to be quite a different beast)
[1] https://www.dragonflybsd.org/docs/docs/howtos/howtorecoverdataonhammerfs/ https://www.dragonflybsd.org/docs/docs/howtos/howtorecoverda...
- bruce343434 5y agoSadly that’s not what copy on write means. When you have file a and you copy it to file b. COW means the copy b will only be truly materialized once you write something to it/edit it. Before that, file b will be aliased to file a.
- mrighele 5y agoIf you have file A and a make a snapshot of it, let's call it A@2022-04-01-12:00, you have now two different files pointing at the same blocks. If you write to one of the blocks of A you will not overwrite any data of A@2022-04-01-12:00 because the new data will be saved to a different block. I would call that copy on write. I admit that the description is not perfect because it doesn't always apply (like in the example you make), but I couldn't come up with a more appropriate description and for the discussion at hand I thought it was quite apt. Also, for what is worth, Wikipedia seems to agree with me [1] [1] https://en.wikipedia.org/wiki/Copy-on-write#In_computer_storage https://en.wikipedia.org/wiki/Copy-on-write#In_computer_stor...