4 ms·
This rambles a bit. Here's the summary: btrfs is currently optimized for normal applications that do open("foo", O_RDWR). With this mode, integrity semantics
by aliguori 15y ago
This rambles a bit. Here's the summary:
btrfs is currently optimized for normal applications that do open("foo", O_RDWR). With this mode, integrity semantics are quite loose in POSIX.
Because VMs emulate physical hardware with strong integrity semantics, they usually do either open("foo", O_DIRECT) or open("foo", O_SYNC).
btrfs sucks for O_SYNC. It's not just VMs, databases also tend to make heavy use of O_SYNC.
- gaius 15y agoIronic that BTRFS is sponsored by Oracle then!
- aliguori 15y agoA lot of filesystems don't optimize O_SYNC heavily until it becomes necessary. ext4 has really bad O_SYNC performance until pretty recently FWIW. Given where BTRFS is right now development wise, it's not at all surprising O_SYNC hasn't been optimized yet.