《高级数据库系统》课程实验

本年度课程实验提供以下两种完成⽅式,同学们可根据⾃身兴趣选择其中⼀种 (10.25之前将自己的选项提交给助教):

Lab 1. Storage and Buffer Manager 实验:按照课程实验⽂档,实现数据库缓冲管理器的相关功能。

Lab 2.  参加2026 OceanBase 数据库竞赛:个⼈或组队参加 2026 年第六届 OceanBase 数据库竞赛,完成规定数量的初赛题目。

--------------------------------------------------------------------------------------------- 

Lab 1:根据下面的设计要求,实现一个Storage and Buffer Manager。

        设计具体要求:lab1.pdf(单击链接下载)

1. 按文档要求实现一个Storage and Buffer Manager,要求至少实现LRU算法。

2. 底层文件默认采用目录式堆文件。

3. 建议先构建一个5万个page(页号从0到49999)的堆文件(使用自己实现的FixNewPage()接口),然后再运行trace文件:data-5w-50w-zipf.txt(包含了50万次满足Zipfan分布-0.8的页面请求,即80%的请求集中在前20%的页号上),根据设计文档要求统计磁盘IO、Buffer命中率、运行时间等数据。

4*. 下面的实验为选做内容,不做强制要求。如果完成了选做实验(一个或者多个),最后实验成绩会根据完成的情况适当加分(1-5):
(1)实现CLOCK、LRU-2、2Q、LIRS、ARC等其它缓存置换算法,并与LRU算法的性能进行对比;(完成1种算法的实现与验证加1分,上限3分)
(2)加入缓存请求时的并发控制,通过乐观内存锁(latch)解决缓存访问时的冲突;要求通过多线程方式执行trace并给出测试结果。(2分)

实验提交内容:

(1)  文档:提交一个说明文档,陈述你的设计和实现结果(包括设计结果、实现结果、运行结果等)。 格式要求:pdf文档。

(2)  源码以及运行说明。

(3)  提交截止时间:待助教通知

(4)  提交方式:待助教通知

 

Lab 2:2026 Oceanbase数据库竞赛

          具体要求:lab2.pdf(单击链接下载)