主内存数据库系统设计/存储引擎概述
外观
第四章:存储引擎概述
存储引擎通常负责数据库管理系统 (DBMS) 中的数据组织、访问方法和事务。这是 DBMS 中与操作系统服务交互的最低层子系统。通常,产品通过操作系统层子系统(操作系统系统调用的包装器)进行交互,以简化移植工作。
数据应存储在计算机系统的以下组件之一中
- 内存
- 辅助存储器 - 磁盘
- 三级存储器 - 磁带
这些组件具有数据容量、每字节成本、速度跨越多个数量级。容量最小的设备提供最快的访问速度,并且每字节成本最高。
当前趋势:由于其巨大的容量和每字节低成本,三级存储器现已被磁盘取代。未来趋势:由于容量增加和每字节成本降低,磁盘被主内存取代。
一次磁盘块传输大约需要 5 毫秒,而主内存访问需要 100 纳秒。通过将整个数据库保存在内存中,这些磁盘 I/O 被转换为内存访问,从而将吞吐量提高了许多倍。内存是一种易失性设备,当断电时会丢失存储在其中的数据。但磁盘是一种非易失性设备,即使长时间断电,也能保持内容完整。这使得主内存存储管理器难以实现。它使用日志记录和检查点机制来应对电源故障,并使存储在主内存中的数据持久化。