跳转至

实验 1: 页面组织与缓存管理

实验概述

页面组织与缓存管理在数据库中扮演着重要的角色。页面组织对数据库的性能和效率有直接和重要的影响,合理的页面组织可以优化数据在磁盘上的存储布局,从而提高数据的访问效率。页面组织还可以影响事务处理的性能和并发控制的效率,合适的页面组织方式可以减少事务处理中的冲突和锁竞争,从而提高系统的并发性能。

缓存管理对数据库的性能和效率同样至关重要,缓存管理模块通过将常用的数据存储在内存中,使数据库不必每次都从磁盘中读取数据,降低了对磁盘 IO 的需求,减少了访问磁盘的开销。

在本次实验中,你需要实现变长记录的页面组织,并为缓存管理模块添加 LRU 替换策略。

实验目标

本次实验要求完成如下基础功能:

  1. 变长记录的页面组织:将长度不等的变长记录按照页面形式进行数据组织,实现对于变长记录页面的增删改查操作。

  2. LRU 缓存替换算法:基于页面的访问序列管理缓存池,按照 LRU 缓存替换策略进行换出缓存页面的选择。

在基础功能之上,实验框架支持完成以下高级功能:

  1. 垃圾回收:实验框架中采用标记方式删除数据,删除后的数据仍然占用磁盘空间。在此基础上添加 Vacuum 功能,实现主动垃圾回收机制。

  2. 优化堆表的插入效率:实验框架中数据表按照堆表形式进行组织,在此基础上设计空闲空间数组优化数据插入效率。

关联知识点

本次实验关联数据库存储章节,重点涉及以下知识点:

  1. 页面组织:变长记录的页面组织方式。
  2. 文件组织:数据文件的堆表组织方式。
  3. 缓存管理:缓存替换算法的实现将涉及到各类缓存替换策略的原理与算法流程。

相关代码模块

本次实验涉及到代码中以下功能模块:

基础功能需要补充约 100 行代码,本次实验的基础功能部分是后续所有实验的基础,未完成本次实验将影响后续实验的进行。

相关功能模块的示意图如下: