The basic approach is that all program data are kept in virtual memory. In the case of the very simplistic example given in the article, the system in question has an ext4 home partition that has been there for years, so that wasn't an option.
I was a bit stuck here, because you can't shrink XFS. This requires support within the application programming language.
Btrfs: Subvolumes and snapshots Posted Jan 7, UTC Tue by cruff subscriber, [ Link ] I don't even know what you should do if some process with its own mount namespace has the filesystem mounted. But periodically a snapshot would be converted to be stored only on a single drive or subset of striped drives.
Notable features which set btrfs RAID apart from mdadm are self-healing redundant arrays and online balancing.
All of these features are available on ZFS and btrfs. If the OS wants to write to that file the filesystem allocates a new block, copies the existing data over to it and then does the modification that the OS asked for. It is expected to use vfork if you are performing exec followed by vfork.
When you do a snapshot, you aren't copying all the data into the snapshot.
The majority of the space is used by data files, or software outside of the distro. As long as the database uses journaling and if it doesn't, upgrade!