2 ms·
> Now that we have NAND storage, would we create filesystems differently? Are there ways to make a step-change in overall performance somewhere? you might enjo
by evil-olive 2y ago
> Now that we have NAND storage, would we create filesystems differently? Are there ways to make a step-change in overall performance somewhere?
you might enjoy Allan Jude's "Scaling ZFS for NVMe" talk [0] from 2022. the tl;dw is that modern NVMe drives have gotten so fast that filesystem developers are having to revisit assumptions that have been true for decades about which operations will be slow vs. fast.
flash storage that exposed a SATA interface and pretended to be a superbly fast hard drive was an evolutionary improvement of sorts. NVMe is more of a revolutionary improvement, it does away with the spinning-rust assumptions. for example, SATA limits a device to one command queue with 32 commands; NVMe makes it almost unlimited (64k queues with up to 64k commands) [1]
there is also a corner of the NVMe spec [2] that allows you to treat an SSD directly as key-value storage instead of block storage with a filesystem implementing a key-value layer on top of it. this is promising but AFAIK no mainstream filesystem is using it yet, and I'm not sure if support has even trickled down into consumer drives or if it's market-segmented off for datacenter use only.
0: https://www.youtube.com/watch?v=v8sl8gj9UnA https://www.youtube.com/watch?v=v8sl8gj9UnA
1: https://en.wikipedia.org/wiki/NVM_Express#Comparison_with_AHCI https://en.wikipedia.org/wiki/NVM_Express#Comparison_with_AH...
2: https://nvmexpress.org/specification/key-value-command-set-specification/ https://nvmexpress.org/specification/key-value-command-set-s...