BusTub-Lab4

Lab4 由于五一临近考试,再加上后续还需要准备各种机试以及408等,整个Lab4做的比较的草率,基本上只实现了最基础的功能,Leaderboard Bonus的各种优化都没去实现,确实是没时间了,在这里也只能简单记录一下 ...

2023-04-23 · 14 min · Fischer

BusTub Lab3 Query Execution

Lab3 Task1 火山模型 在Task1当中实现了SeqScan​ Insert​ Delete​ IndexScan​,由于均为火山模型,因此在实现上大同小异,就集中说明一下火山模型,和各自所需要注意的即可。 ...

2023-04-15 · 12 min · Fischer

BusTub Lab2 B+Tree Index checkpoint2

checkpoint2 Task3 在支持并发前没什么好说的,一个简单的迭代器。根据begin的条件找到一个起始页,之后在该页内遍历即可,当遍历完该页之后,根据nextPageId找到下一页继续遍历即可。 ...

2023-04-14 · 12 min · Fischer

BusTub Lab2 B+Tree Index checkpoint1

Lab2 对于Lab的debug,由于并没有开放测试样例,因此最好的就是找一个合适的b+树的模拟动画,然后再使用官方的画图工具比较自己的B+树,一般3-4层没有问题了大多就是没有问题了,把分裂、合并、重分配等各种情况全部涉及到一次基本就可以了。 ...

2023-03-24 · 12 min · Fischer

BusTub Lab1 Buffer Pool Manager

BusTub Lab1 Buffer Pool Manager Task1 可扩展哈希表 相关函数 Find(K,V)​:查询一个Key是否存在,如果存在则将其V指针指向相关的值,返回true,否则返回false Insert(K,V):插入一个值,如果已经存在,则覆盖原本的值,返回true,如果当前k-v不能被插入(bucket满了,并且不是对原有的key进行更新),则: ...

2023-03-20 · 18 min · Fischer

BusTub Lab0 cpp primer

BusTub Lab0 cpp primer 实现一个字典树,主要定义了三个类: TrieNode TrieNodeWithValue Trie Task1 实现一个不支持并发的字典树 TrieNode 内部存储的数据为一个char字符, 并且有一个标识位置来表示是否到达了结束位置 对于字节点通过一个char-> unique_ptr的Map来进行存储 使用unique_ptr则意味着当将其分配给其他的变量时需要小心,InsertChildNode​ GetChildNode​的返回格式均为unique_ptr​,因此可以不进行copy的直接访问当中的数据 ...

2023-03-18 · 2 min · Fischer