课程实验部分使用C++语言。我建议在开始实验前,花大约5天时间学习北大郭炜老师的C++课程,特别是其中关于面向对象编程和智能指针的部分。这门课程内容深入,适合有一定C语言基础的学员。此外,推荐使用learncpp网站的教程和文档cppreference进行辅助学习。对于英文水平较弱的学员,建议在B站查找汉化版课程视频。...
项目代码整体规范、可读性高,遵循了clang-format和clang-tidy的代码规范(吐槽一下,函数返回值务必采用尾置返回)。项目使用了cmake构建系统,代码结构清晰,适合作为参考移植到其他项目中。第三方库包括gtest、fmt、argparse等,还有一系列自定义工具类。每个Lab提供本地测试,同时提供了难度较高的在线测试...
0 订阅 专栏介绍 已更内容 cmu15445通关记录 专栏作者 coleanthony 知乎影响力 获得279 次赞同 · 285 次喜欢 · 1603 次收藏 已更内容 · 5 CMU15445(Spring 2023)PROJECT #4 - Concurrency Control Resources•https://15445.courses.cs.cmu.edu/spring2023/2023spring课程官网 •https://github.com/cmu...
本地测试提供初步验证,网上测试代码挑战性强,完成所有测试后,可进入leaderboard,与其他学员一较高下。代码规范包括使用clang-format和clang-tidy进行代码美化与检查,确保代码质量。cmake结构清晰,便于项目管理和移植。整个课程经历充满了挑战与成就感,通过leaderboard排名,激励自我进步。课程中遇到的难题,...
对于CLion,它更适合与WSL一起使用,但内存占用较大。首先打开项目,设置ToolChains为WSL,并指定clang-12编译器路径。注意区分debug和release版本的构建,通过CMake Settings设置Build Directory和Build Type。在VSCode中,只能运行整个测试,而在CLion,可以直接点击测试代码段运行。总的来说,无论是VSCode还是...
CMAKE_CXX_FLAGS} -Wno-unused-parameter -Wno-unused-private-field") #TODO: remove # -- [ Debug Flags set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O0 -ggdb -fno-omit-frame-pointer -fno-optimize-sibling-calls") # --[ Output directory set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${C...
阅读全文 赞同1 添加评论 分享收藏 CMU15-445 02_Advanced_SQL_(CMU_Databases_Systems___Fall_2019) Right, just in the back your mind will see examples as we go along where a query optimizer could try out diff…阅读全文 赞同 添加评论 分享收藏...
我们这个基础,提交到PROJECT2C 里的2C-PREPARATION 第二步 重写FIND LEAF PAGE 下面是原来的代码 image.png 基于思考,我们需要把FETCH PAGE这个地方做个加强。 里面的逻辑大概是,首先拿到PAGE,锁住,然后看这个节点是不是SAFE,是的话,释放掉TRANSACTION里管理的PAGE。然后把这个PAGE加进去。
// c. 通过指针运算获取 frame_id 处存放的 Page 结构体 Page *p = pages_ + frame_id; p->pin_count_++; replacer_->Pin(frame_id); // d. 将对应 page 从“回收站”中捞出 return p; } // 1.2 If P does not exist, find a replacement page (R) from either the free list or the ...
DBMS包含一个锁管理器,用于决定事务是否可以锁定。 它了解系统内部的最新情况。•共享锁(S-LOCK):允许多个事务同时读取同一对象的锁。 如果一个事务持有共享锁,则另一个...