Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database DBMS是否真的绕过操作系统运行文件系统来管理磁盘空间?_Database_Disk - Fatal编程技术网

Database DBMS是否真的绕过操作系统运行文件系统来管理磁盘空间?

Database DBMS是否真的绕过操作系统运行文件系统来管理磁盘空间?,database,disk,Database,Disk,我正在研究由提供的,它说: 在磁盘空间管理方面,有两个建议: 直接与存储设备通话,或 在文件系统(FS)上运行我们自己的。绕过操作系统,在系统上分配一个大的“连续”文件 空磁盘 我没有得到第二个建议。我确实理解利用文件系统非常好,因为它为我们做了很多事情,但是: 为什么要绕过操作系统?为什么不使用操作系统提供的文件系统API来管理磁盘空间 “使用FS但绕过OS”的真正含义是什么?我认为大多数系统通过OS使用FS。在数据库管理系统中不是这样吗 DBMS旨在解决这样一个问题:磁盘空间大但速度慢

我正在研究由提供的,它说:

在磁盘空间管理方面,有两个建议:

  • 直接与存储设备通话,或
  • 在文件系统(FS)上运行我们自己的。绕过操作系统,在系统上分配一个大的“连续”文件 空磁盘
我没有得到第二个建议。我确实理解利用文件系统非常好,因为它为我们做了很多事情,但是:

  • 为什么要绕过操作系统?为什么不使用操作系统提供的文件系统API来管理磁盘空间
  • “使用FS但绕过OS”的真正含义是什么?我认为大多数系统通过OS使用FS。在数据库管理系统中不是这样吗

DBMS旨在解决这样一个问题:磁盘空间大但速度慢,内存小但速度快,如何使我们的数据库又大又快?因此,它需要同时解决内存管理和磁盘管理

通常,DBMS依赖OS文件系统进行磁盘管理,但将绕过OS(即mmap)进行内存(也称为缓冲池)管理

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

  • 内存管理:大多数DBMS在逻辑上理解工作负载/事务,而OS不知道内存中不同缓冲区之间的关系。这使DB能够自行管理内存

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