DBMS 是否真的通过文件系统绕过 OS 和 运行 来管理磁盘 space?

Does DBMS actually bypass OS and run over filesystem to manage disk space?

我正在研究 slides offered by UCB cs186 fall 2020 course,它说:

在磁盘space管理方面,有2个建议:

我没有收到第二个提议。我知道利用文件系统很棒,因为它对我们有很多帮助,但是:

DBMS旨在解决的问题:磁盘space大而慢,内存小而快,如何让我们的DB大而快?因此,它需要同时解决内存管理和磁盘管理。

通常,DBMS 依赖 OS 文件系统进行磁盘管理,但会绕过 OS(即 mmap)进行内存(又名缓冲池)管理。

  • 磁盘管理:很少有 DBMS (BlueStore, ScyllaDB) 会绕过 OS 文件系统并直接与原始设备通信,但由于复杂性、可移植性等问题,和微不足道的加速(根据 Andy Pavlo 的说法约为 10%),它们并不常见。

  • 内存管理:大多数DBMS对workload/transactions有逻辑上的理解,而OS不知道内存中不同缓冲区之间的关系。这有利于 DB 自行管理内存。

感谢 CMU 15-445 非官方社区 (Discord) 中的 Aashray#4143 和 miller#0114。