家装设计学校,沈阳网站建设优化企业,用自己头像做的圣诞视频网站,成都网页制作推广前言
CMU15445是一门关于数据库管理系统#xff08;DBMS#xff09;的设计和实现的优秀课程。由数据库领域大佬Andy主讲#xff0c;同时还有迟策大佬所设计和维护的BusTub#xff0c;其名声在外之处更是有着极高质量的作业#xff08;HOMEWORKS#xff09;和项目#x…前言
CMU15445是一门关于数据库管理系统DBMS的设计和实现的优秀课程。由数据库领域大佬Andy主讲同时还有迟策大佬所设计和维护的BusTub其名声在外之处更是有着极高质量的作业HOMEWORKS和项目PROJECTS。总的来说15445共有五个项目最终会实现一个面向磁盘的传统关系型数据库 Bustub 中的部分关键组件包括 Buffer Pool Manager 内存管理, B Plus Tree 存储引擎, Query Executors Query Optimizer 算子和优化器, Concurrency Control并发控制分别对应Project 1 到Project 4而Project 0C Primer是检测学生是否有能力完成该课程的C测试要求实现一个支持并发操作的键值Triespring 2023增加了copy on write文档中也提到如果你不能满分通过这一关那还是推荐你退掉drop这门课 ┭┮﹏┭┮。 好了话不多说让我们开始美妙的学习之旅吧。 参考资料
ButTub Github CMU15445 fall 2022 FAQ clang报错 环境配置Linux/Mac yesWSL not guaranteed work
Cloning this Repository
1.首先你要创建一个Github仓库repository请务必设为私有Private并且不要公开你的代码。
2.clone 一个bare仓库该仓库为公共存储仓库 git clone --bare gitgithub.com:cmu-db/bustub.git bustub-public 3.进入bustub-public将项目push到第1步创建的远程私有仓库中这一步相当于进行了duplicating a repository以后就可以在我们创建的仓库中修改、提交代码了。
cd bustub-public
git push gitgithub.com:guoruiqi01/test_for_15445.git # 你自己的远程仓库现在远程私有仓库已经有内容了我们可以将第2步clone下来的公共仓库内容删掉。
cd ..
rm -rf bustub-public4.将远程私有仓库clone到本地 git clone gitgithub.com:guoruiqi01/test_for_15445.git 5.这一步我没搞懂什么意思但还是照着做了添加公共 BusTub 存储库作为第二个远程存储库。这允许我们从 CMU-DB 存储库检索更改并将它们与整个学期的解决方案合并 git remote add public https://github.com/cmu-db/bustub.git 检查是否添加成功 git remove -v
origin https://github.com/guoruiqi01/test_for_15445.git (fetch)
origin https://github.com/guoruiqi01/test_for_15445.git (push)
public https://github.com/cmu-db/bustub.git (fetch)
public https://github.com/cmu-db/bustub.git (push)Build
1.使用脚本配置软件包 sudo build_support/packages.sh 2.由于我们做的是2022 fall而现在官网是给本学期的学生使用的因此我们要找到2022年的版本最后一次布置的作业是在Nov 17, 2022发布的我们需要在commits里找到该日期附近的版本号5e0b917ca00af46ebca8a1eea218c219c1b55aa1并git checkout过去如果你做最新版本不需要做这一步。
git checkout 5e0b917ca00af46ebca8a1eea218c219c1b55aa1 3.接下来构建项目创建build生成目录
mkdir build
cd build
cmake ..
make这里可能会报一个warning WARNING !! We recommend that you use clang-12 for developing BusTub. Youre using GNUxxx, which is not clang. 从我们的参考链接中得知项目需要用到clang-12作为编译器而编译时用了其他的。 你可以先查看机器上是否安装了clang-12
where is clang-12
where is clang-12如果没有你可以安装它并将选择使用的默认版本
# 安装
sudo apt install clang-12
sudo apt install clang-12# 使用默认版本
sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-12 100
sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-12 100然后将安装路径加到CMakeLists.txt中即可解决。
接下来再构建项目应该就没有warning了。 Gradescope在线测评
作为non-CMU的学生我们也可以将写好的项目上传进行自动测试和排名2022 fall的邀请码Entry Code 是PXWVR5。FAQ里我们能找到链接
我们注册一个帐号并选择Student。
学校要填Carnegie Mellon UniversityID可以不填。 这就完成了注册