
On Disk IO, Part 3: LSM Trees - AlexDenisov
https://medium.com/@ifesdjeen/on-disk-io-part-3-lsm-trees-8b2da218496f
======
derefr
Are LSM trees still relevant under a mostly-NVMe storage architecture? If not,
what is used instead?

~~~
ewams
My understanding is nvme drives are SSD drives, it's just a different
interface. It goes over the pcie bus instead of thru sata / sas which have to
go thru another processor that introduces overhead. So they are just faster
SSD drives because the connection method and communication format is
different.

~~~
jdefarge
By the way, there's an interest research on designing a new file system based
on LSM tree that leverages SSD's sequential writing, as it is mainly motivated
by SSDs' shortcomings with random writes:
[https://www.usenix.org/legacy/event/fast/tech/full_papers/Mi...](https://www.usenix.org/legacy/event/fast/tech/full_papers/Min.pdf)

------
Vogtinator
In the first part, the author makes several mistakes including confusing
O_DIRECT with DMA. So take this with a grain of salt.

~~~
ifesdjeen
If you could list the mistakes, the author could try making corrections and
improve the text.

As regard O_DIRECT vs DMA, not sure what exactly you're saying. Understanding
Linux Kernel book, for example, is using them quite interchangeably as well
(4th edition, 2.6 kernel). Block devices are handled through interrupts and
DMA, and these are lower-level means for doing IO. Scylla devs are using it
quite interchangeably as well:
[https://github.com/scylladb/seastar/blob/master/core/reactor...](https://github.com/scylladb/seastar/blob/master/core/reactor.hh#L987-L998)

Wording might have been not optimal, but author never implied that O_DIRECT is
DMA.

disclaimer: I'm the author.

