首页 > TAG信息列表 > CMU15445

CMU15445 (Fall 2019) 之 Project#3 - Query Execution 详解

前言 经过前面两个实验的铺垫,终于到了给数据库系统添加执行查询计划功能的时候了。给定一条 SQL 语句,我们可以将其中的操作符组织为一棵树,树中的每一个父节点都能从子节点获取 tuple 并处理成操作符想要的样子,下图的根节点 \(\pi\) 会输出最终的查询结果。 对于这样一棵树,我们获

CMU15445 (Fall 2019) 之 Project#2 - Hash Table 详解

前言 该实验要求实现一个基于线性探测法的哈希表,但是与直接放在内存中的哈希表不同的是,该实验假设哈希表非常大,无法整个放入内存中,因此需要将哈希表进行分割,将多个键值对放在一个 Page 中,然后搭配上一个实验实现的 Buffer Pool Manager 一起食用。哈希表的大致结构如下图所示:

CMU15445 (Fall 2019) 之 Project#1 - Buffer Pool 详解

前言 这个实验有两个任务:时钟替换算法和缓冲池管理器,分别对应 ClockReplacer 和 BufferPoolManager 类,BufferPoolManager 会用 ClockReplacer 挑选被换出的页,并通过 DiskManager 将换出的页写到数据库文件中。下面介绍这两个类的实现过程。 代码实现 如果直接克隆 Bustub 仓库,得到

CMU15445 C++ primer

CMU15445 C++ primer 源代码知识点 lab0地址 看完了《C++ primer》,拿这个项目练手,熟悉C++,一边看《Effective C++》和 Google 开源项目风格指南,一边写这个,加深印象。做第一个lab就遇到了一些问题。 test/primer/starter_test.cpp:测试代码 src/include/primer/p0_star

CMU15445 PROJECT #1 - BUFFER POOL

CMU15445 PROJECT #1 - BUFFER POOL 第一个编程项目是在存储管理器中实现缓冲池. 缓冲池负责将物理页面从主内存来回移动到磁盘. 它允许 DBMS 支持大于系统可用内存量的数据库. 缓冲池的操作对系统的其他部分是透明的. 例如, 系统使用其唯一标识符(page_id_t)向缓冲池询问页面,

CMU15445环境搭建

CMU15445环境搭建 环境:Ubuntu20.04LTS 在自己的github上新建一个repo,名称可以是private-bustub,然后repo设置为private(老师要求的) clone课程仓库BusTub $ git clone --depth 1 https://github.com/cmu-db/bustub.git public-bustub 将克隆的课程仓库mirror到自己的private-bust