SSDs already do copy-on-write. They can't change small parts of the
data in a block, but have to re-write the block. While that could be
done by reading the whole erase block to a ram buffer, changing the
data, erasing the flash block, then re-writing, this is not what happens
in practice. To make efficient use of write blocks that are smaller
than erase blocks, and to provide wear levelling, the flash disk will
implement a small change to a block by writing a new copy of the
modified block to a different part of the flash, then updating its block
indirection tables.
BTRFS just makes this process a bit more explicit (except for superblock
writes).
Different file systems have different strengths and weaknesses. I
haven't actually tested BTRFS much, but my understanding is that it will
be significantly slower than EXT in certain cases, such as small
modifications to large files (since copy-on-write means a lot of extra
disk activity in such cases). But for other things it is faster. Also
remember that BTRFS is under development - optimising for raw speed
comes at a lower priority than correctness and safety of data, and
implementation of BTRFS features. Once everyone is happy with the
stability of the file system and its functionality and tools, you can
expect the speed to improve somewhat over time.
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html