mmap 被认为是buffer pool的替代品.
DBMS开发者不再需要写buffer pool的代码来管理数据库文件的
- I/O,
- 与内存中数据的同步,
mmap 系统调用会将文件内容映射到进程的虚拟内存空间中, 并具有读取时加载, 自动写回等功能, 应用只需要操作返回的文件指针即可.
许多现代DBMS都(曾经)使用了这项技术, 但来自cmu.db组的这一篇论文, 讲述了在DBMS中使用mmap会有哪些问题, 并通过实验展示了mmap相较于直接文件I/O的性能劣势, 并向开发者们建议不要在(事务/异步IO/错误处理/高吞吐的磁盘缓存)DBMS中使用mmap技术