Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I'm pretty sure that I was at a conference where Chris Mason explicitly commented on the irony of working at a database company (Oracle) but designing a file system that's fundamentally bad for database workloads. I think it was a Linux Foundation event, maybe an EUS in NYC. In any case, it's pretty well known that COW file systems are not a good fit for this kind of workload. A more interesting question is whether this level of (in)stability and (un)predictability is acceptable for any workload other than scratch storage (which doesn't benefit from snapshots and CRCs very much). My takeaway from this article is basically that F2FS is worth another look.


While I'm obviously interested in benchmarks and performance (I'm author of the blog post referenced here), I'm perfectly OK with sacrificing some of the performance in exchange for advanced features provided by the filesystem.

For example built-in snapshotting, additional data integrity guarantees thanks to checksums (e.g. resiliency to torn pages) etc. Because you either can't get that with the traditional filesystems or it'll come at a cost (e.g. LVM adds complexity and has impact on performance).

What I'm not quite OK with is getting very unstable performance - with OLTP workloads you really want smooth behavior, not the jitter or random issues you get with BTRFS. Especially when the other COW filesystems like ZFS perform so much more sensibly.

I don't think comparing F2FS and BTRFS is entirely fair, though. Those are filesystems with very different goals, F2FS is mostly designed to work with single SSD devices (so no RAID-like stuff like BTRFS) and lacks many of the advanced features (you can't even do snapshots).

Also, it was not my intention to say that BTRFS is somehow conceptually wrong and unusable for database workloads. But the current state is not really something I'd recommend for OLTP in production - that's what the rant is essentially about.


I also take a dim view of that performance instability, with any workload. In fact, it's one of the points I address on the slides I just sent in for a mini-tutorial on storage performance (for LISA'15 in case anyone wants to see it). All I'm saying is that, even under the best of circumstances, I would consider any COW file system a dubious choice for OLTP.




Consider applying for YC's Winter 2026 batch! Applications are open till Nov 10

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: