- 博客(9)
- 收藏
- 关注
原创 cmu15445(2024fall) project4
做该项目之前建议先通读一遍整个项目指导文档。该协议中的存储模型类似于课程中讨论的增量表(delta table)架构。对于每个存储的元组,DBMS 还会额外存储元组的delta,项目中将其称为undo log。表堆中的元组及其对应的undo log/增量构成一个单向链表,称为版本链version chain。通过version chain,我们可以在逻辑上“存储”元组的每个先前版本。项目中并非存储元组的每个版本,而只是存储每个版本之间的增量。
2025-09-02 17:19:12
1079
原创 cmu15445(2024fall) project3
Project 3主要是实现BusTub中的查询执行部分的一些算子,同时补充一些查询优化的规则。BusTub采用iterator model,即迭代器模型 / 火山模型。project介绍中的background部分值得仔细阅读。其中涉及到bustub中的执行器架构、已经实现的部分与算子的介绍。下图中是关于Query Plan句法的一点介绍。Project 3 中,当使用 EXPLAIN 查看查询计划时,#0.0 和 #0.1 这样的标记是 Bustub 查询计划表示法中的列引用。
2025-08-06 22:42:35
914
2
原创 cmu15445(2024fall) project 2
project 2比p1难度要更大,代码量更大且涉及的知识更多,实现中出现的bug更多,好在是最后全部解决了。我最大的收获在于对于多线程编程的理解更深入了,实际发现解决了多个多线程相关的bug,学会了更多多线程下debug的技巧方法,也见识了更多多线程的bug情况。在之后可以更系统的学习一下多线程编程。同时学会实现B+树也是需要掌握的基础。
2025-07-13 16:11:49
1248
原创 cmu15445(2024fall) project 1
这里的disk scheduler主要功能是使用一个队列存储buffer pool manager发来的页面访问请求,并通过一定的调度策略进行调度,即安排处理请求的先后,然后通过DiskManager类的对象disk_manager处理read / write请求。这里bustub中调度策略是简单的FIFO,其他调度策略可以参考OS课程中学习的磁盘调度策略。这里其实也可以进行优化,未来有时间研究一下。
2025-05-29 22:11:44
1220
3
原创 cmu15445(2024fall) project 0
本来笔者是打算做2025 spring的,但是做完project 0打算在gradescope上提交时,发现文档里没提供课程码。之后到cmu提供的 Discord channel里查看聊天记录,发现2025 spring现在是不公开的(悲),所以非cmu学生是不能用gradescope评分2025 spring的。似乎和不是andy教课有关。所以改成做2024 fall。由于2025的project 0也做了,在这里也稍微做点记录。
2025-05-24 00:52:15
840
原创 cmu15445-bootcamp Note
最近打算写写cmu15445课程的project,但是对于c++的很多新特性和深入用法不够熟悉,这里从cmu15445-bootcamp入手,重新熟悉c++
2025-05-21 23:18:30
1249
原创 AgensGraph内核分析(一)
agensgraph中添加了与图相关的系统表,下图为src/include/catalog中agensgraph添加的定义系统表数据结构的头文件。src/backend/parser中添加了关于图与cypher语言进行语义分析的parser文件。(1)系统表(src/backend/catalog,src/include/catalog)下图为src/backend/catalog中添加的定义了对系统表进行操作的函数。(3)编译器(src/backend/parser)
2024-05-28 18:55:51
454
原创 关于C++中字符输入中空格的问题
本人算编程蒟蒻,才开始比较系统的学习c++。开始时关于cin对空格的输入问题一直很疑惑。目前自己总结了以下要点:(1)
2022-03-07 14:58:28
4725
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅