想加入知识星球的录友们要抓紧咯
知识星球 再添 CPP专栏项目, 手写一个数据库,关于数据库项目,最知名的就是cmu15445。今天早上刚刚在星球里发布专栏,还热乎着:
将这门课程做完,不仅实现一个独立项目,还可以很好的结合数据库八股文知识,做到学以致用。
授课 cmu15445 的教授明确要求不让学生上传代码到Github,尊重课程的规定,所以本项目不提供代码。
但本项目文档可以帮助大家速成cmu15445,【学习指引】【项目架构】【项目难点】【简历写法】【面试问题】以及【拓展和可以深挖的点】都给大家安排上了。
如果大家想找代码,建议在github上搜 2022版cmu15445的课程,相对资料比较多。
学哪一个学期的版本?
每一个学期基本上是4个lab
, 从存储、索引、事务等逐级向应用层靠拢, 具体区别为
学期 | lab1 | lab2 | lab3 | lab4 |
---|---|---|---|---|
Fall 2019 | 缓存池(时钟更换) | 哈希索引 | 查询计划 | 日志和恢复(日志+Checkpoint ) |
Fall 2020 | 缓存池(LRU) | B+树索引 | 查询计划 | 并发控制(锁管理器+死锁检测) |
Fall 2021 | 缓存池(LRU+并发多缓存池) | 哈希索引 | 查询计划 | 并发控制(锁管理器+死锁检测) |
Fall 2022 | 缓存池(LRU-K+可扩展哈希) | B+树索引 | 查询计划 | 并发控制(锁管理器+死锁检测) |
Fall 2023 | 缓存池(LRU-K+磁盘调度) | 哈希索引 | 查询计划 | 并发控制(MVCC +Serializable 隔离级别) |
这个主推秋季学期的版本, 因为春季学期可能不是
Andy
上课 2024最新版还在更新中, 但参考资料肯定是最少的, 自学能力强的同学可以上24fall!
可以看出,bustub
是不断被完善的, 2023版甚至有MVCC
和Serializable
隔离级别非常地Amazing
, 但目前建议做B+树
索引版本的2022版, 一方面是因为资料比较多, 另一方面还是因为面试时关注数据结构的主要索引就是B+树
, 学有余力的同学可以做2023的lab4
参考资料
这里查看所有学期的官方主页: https://15445.courses.cs.cmu.edu/
项目专栏目录
技术栈 相关学习资料 学哪一个学期的版本? 课程视频 环境搭建 Lab指南 lab1 lab2 lab3 lab4 项目架构 代码梳理 项目难点 简历写法 相关面试问题 raft 相关 数据库相关 拓展&&可以深挖的点 为什么现在更多的 KV
数据库采用LSM Tree
而抛弃了B+树
?
简历写法
很多录友做完项目不知道该怎么写到简历上,本项目专栏直接把简历写法写好了,大家可以直接用:
(具体项目亮点在公众号上做打码处理,避免过于重复)
本项目常见问题
专栏里都给出明确的例子,帮助大家面试准备:
项目亮点以及项目细节
为了更好的掌握这个项目,亮点和细节都给大家讲清楚:
项目难点
很多录友做完项目,不知道项目难点是什么,文档都给大家列出来。
面试中,面试官最喜欢问的就是项目难点,以及这个难点你是如何解决的。
项目拓展出的基础知识
在做做项目的时候,最好的方式就是 理论基础知识和项目实战相结合。
面试官也喜欢在 项目中问基础知识(八股文),本专栏也给出可以拓展哪些基础知识
项目专栏部分截图
突击来用
如果大家面试在即,实在没时间做项目了,可以直接按照专栏给出的【简历写法】,写到简历上,然后把项目专栏里的面试问题,都认真背一背就好了,基本覆盖 绝大多数 项目问题。
获取本项目专栏
本项目专栏仅为星球内部专享,大家可以加入知识星球 里查看,在星球置顶一:
这里有十元优惠卷,大家扫码加入:
知识星球支持三天(72h)内全额退款,可以进去看看,星球里的资料都可以获取,如果感觉没收获就退款,退款方式在知识星球APP右上角。(全程无套路)
扫码加入代码随想录知识星球,方向比努力更重要,一群人可以走的更远!