概述 本lab将实现一个锁管理器,事务通过锁管理器获取锁,事务管理器根据情况决定是否授予锁,或是阻塞等待其它事务释放该锁。 背景 事务属性 众所周知,事务具有如下属性: 原子性:事务要么执行完成,要么就没有执行。 一致性:事务执行完毕后,不会出现不一致的情况。 隔离性:多个 ...
概述 经过几天鏖战终于完成了lab ,本lab实现一个支持并发操作的B 树。简直B格满满。 B 树 为什么需要B 树 B 树本质上是一个索引数据结构。比如我们要用某个给定的ID去检索某个student记录,如果没有索引的话,我们可能从第一条记录开始遍历每一个student记录,直到找到某个ID和我们给定的ID一致的记录。可想而知,这是非常耗时的。 如果我们已经维护了一个以ID为KEY的索引结构,我 ...
2019-05-01 10:34 1 976 推荐指数:
概述 本lab将实现一个锁管理器,事务通过锁管理器获取锁,事务管理器根据情况决定是否授予锁,或是阻塞等待其它事务释放该锁。 背景 事务属性 众所周知,事务具有如下属性: 原子性:事务要么执行完成,要么就没有执行。 一致性:事务执行完毕后,不会出现不一致的情况。 隔离性:多个 ...
概述 最近又开了一个新坑,CMU的15445,这是一门介绍数据库的课程。我follow的是2018年的课程,因为2018年官方停止了对外开放实验源码,所以我用的2017年的实验,但是问题不大,内容基本没有变化。想要获取实验源码的同学可以上github搜,或者直接clone我的代码,找到最早 ...
总览 这个lab要实现executors,executor负责query plan(就是operator形成的树)上的operator并执行它们,对于每个executor,需要实现: 对于这个lab,没有SQL,执行的查询计划都是写好的算子树,并且用的是火山模型,每个算子的执行器 ...
好了,我以为这个lab会简单很多。结果没成想,写着写着,发现B+树这个lab给我整不会了。花了足足一个 ...
转载自:segmentfault_欧阳思海-面试官问你B树和B+树,就把这篇文章丢给他 在介绍B+树之前, 先简单的介绍一下B树,这两种数据结构既有相似之处,也有他们的区别,最后,我们也会对比一下这两种数据结构的区别。 1. B树 1.1 B树的概念 B树也称B-树,它是一颗多路平衡 ...
B树的定义 假设B树的度为t(t>=2),则B树满足如下要求:(参考算法导论) (1) 每个非根节点至少包含t-1个关键字,t个指向子节点的指针;至多包含2t-1个关键字,2t个指向子女的指针(叶子节点的子女为空)。 (2) 节点的所有key按非降序存放,假设节点的关键字分别为 ...
一、B+树定义 B+树定义:关键字个数比孩子结点个数小1的树。 除此之外B+树还有以下的要求: B+树包含2种类型的结点:内部结点(也称索引结点)和叶子结点。根结点本身即可以是内部结点,也可以是叶子结点。根结点的关键字个数最少可以只有1个。 B+树与B树最大的不同是内部结点 ...
在之前了解并复习了下B+树之后还是需要实战一下 之前的B+树文章https://www.cnblogs.com/yangj-Blog/p/12944301.html 演示如下 代码如下 BPulsTree.h ...