6 ms·
I can - It's called COW Snapshotting. Modern filesystems like ZFS and BTRFS don't ever overwrite parts of the file that change. They abstract it away by keeping
by GauntletWizard 4y ago
I can - It's called COW Snapshotting. Modern filesystems like ZFS and BTRFS don't ever overwrite parts of the file that change. They abstract it away by keeping an ordered list of blocks. Snapshots are simply copies of the old list.
The analogy doesn't go very far, however.
- bronson 4y agoCOW just dedupes, it doesn’t produce alternatives. Maybe a filesystem that figures out how your spreadsheet can be stored partway into an executable, with no loss to either? Yeah, this analogy doesn’t seem real helpful.
- otherme123 4y agoIf a filesystem worked like alternative splicing https://en.m.wikipedia.org/wiki/Alternative_splicing https://en.m.wikipedia.org/wiki/Alternative_splicing , you could for example store 10 different, valid and useful images using the same disk space. The filesystem would decide how to skip a block or two to give them all. A woodworker could make a better analogy: DNA is like a box of leftover wood. You can chose the "exons" and build a closet with them, a different sort would make a table. My point is we CS shouldn't feel pity for the biologist not being able to draw analogies with our field. You don't need an analogy when you are already the best at understanding the system directly. I like to explain ML to biologists as an analogy with neurons, but it only can go so far. As soon as you need to teach the details things are no longer so similar. The reverse is also true: you can explain a neuron to a CS as a ML neuron, but when you need to explain neurotransmisors in detail, the analogy doesn't work anymore.
- GauntletWizard 4y agoOkay, ZFS also does that - ZFS Deduplication keeps an index of each block by it's checksum, and when it detects a collision, it re-uses the existing block, reducing the number of copies - https://docs.oracle.com/cd/E36784_01/html/E39134/fsdedup-1.html https://docs.oracle.com/cd/E36784_01/html/E39134/fsdedup-1.h... I'm not arguing at all that the analogy is a poor fit. Just that there are several instances of that kind of technique in CS. See also: Compression algorithms that include backpointers, so that medium-sized repeated runs (like common parts of filenames or fileheaders) can be represented by saying "The next 8 bytes are the same as the 8 bytes 32 bytes ago".
- otherme123 4y agoThe whole point of an analogy is to make it easy to understand some complex idea using another simple concept. I would use instead this analogy: "alternative splicing is like having a box of Legos (exons) which you can choose in different order and quantities to get different objects (proteins)." I find it more clear than "alternative splicing is like ZFS deduplication and collision detection algorithm, where blocks can be reused if they are identical". Introns are not for space saving or for efficiency. They provide variability. Is like ZFS could give you slightly different files from what you initially save. E.g. you store feral_cat.jpg spanning a number of blocks, and then just skipping blocks you can get back: feral_cat.jpg, persian_cat.jpg, egyptian_cat.jpg, russian_cat.jpg, alien_cat.jpg, tabby_cat.jpg... You never store "persian_cat.jpg" and try to save some genome space reusing blocks. persian_cat.jpg is just a possible useful image that appears magically from the original feral_cat.jpg.