As zanny said, cow presents an issue for transactional workloads (databases, vm images, etc...) as each write fragments the file, by nature of the process of cow.<p>btrfs can handle database workloads but you have to disable cow for them (which you can do at the file, directory, or subvolume level in btrfs).  You would specify the nodatacow mount option, or chattr +C (file&#x2F;directory).<p>The btrfs autodefrag is still rather new, and needs some work.  I expect that could be the long term fix (manual defrag is fine now, but you wouldn&#x27;t want to call it frequently on a db file), I&#x27;m not sure how ZFS handles the fragmentation, but I do know in the past ZFS observed similar issues (seems to have been mostly resolved).  I should also point out that disabling cow doesn&#x27;t really fully disable it, snapshots can still function, etc... however, I&#x27;m sure that once you start to use the other cow functions you might observe slipping performance due to fragmentation of these types of files.<p><a href="https:&#x2F;&#x2F;blog.pgaddict.com&#x2F;posts&#x2F;friends-dont-let-friends-use-btrfs-for-oltp" rel="nofollow">https:&#x2F;&#x2F;blog.pgaddict.com&#x2F;posts&#x2F;friends-dont-let-friends-use...</a> 
<a href="https:&#x2F;&#x2F;bartsjerps.wordpress.com&#x2F;2013&#x2F;02&#x2F;26&#x2F;zfs-ora-database-fragmentation&#x2F;" rel="nofollow">https:&#x2F;&#x2F;bartsjerps.wordpress.com&#x2F;2013&#x2F;02&#x2F;26&#x2F;zfs-ora-database...</a>