关于 Spring 2023 的通关指南,可以参考 [@xzhseh](https://github.com/xzhseh) 的这篇[CMU 15-445/645 (Spring 2023) Database Systems 通关指北](https://zhuanlan.zhihu.com/p/637960746),里面涵盖了全部你需要的通关道具,和通关方式建议,以及最重要的,我自己在做 Project 的过程中遇到的,看到的,和自己亲自踩过的坑。
顾源:
作为在cmu上过很多系统课(包括andy的445)的人劝你一句,如果你不读db phd的话,这门课的project真的是没啥用,项目设计的太局限于学术setting,本质还是沉迷于一些算法的实现,which如果你走工业界几乎没用,因为工业级代码里最简单的就是算法本身。劝你多实习,找一个热门/自己也感兴趣的方向,对于这些系统课包括445/6.824,最有价值的其实是lecture里的概念,这些课应该像字典/工具书一样,工作上遇到难题了经常回来看一看,而不是费时间做这些"将将能用"的toy project
Michael Xu (作者):
有四点,
1. Bustub用到的最难的算法是Deadlock Detector里的DFS,和BPM里的LRU-K
2. 如果读/写Bustub(你所谓的 Toy Project)的代码都觉得吃力,我并不觉得去看工业界的代码提升有多大(反过来也一样,一个能熟练读懂工业界代码的同学,自身就自然知道需不需要做Project)
3. 光看不练,等于白看
4. 已经工作的同学,我相信随便一本工业界的工具书作为词典的作用,比这些Lectures/Notes的作用更大,i.e, DDIA is all you need
遂光者:
自己作为数据库方向的phd,并且现在也在业界当一个数据库内核开发人员,整体上是比较同意guyuan的说法的。
15-445确实是一门好课,但是Bustub确实是过于toy了,如果想从事数据库内核研发,看Bustub的代码意义不大。pg、mysql、clickhouse的代码可以多看看(虽然mysql的代码比较丑),而且源码分析的博客也挺多的。
当然作者的说法也没错,每个人的需求不一样,很多新人没有大型项目的代码阅读&开发经验,做一个课程pj入门这个领域也挺好的。
总结就是,这个项目适合新人入门。新人入门后如果在这个项目上花很多时间做性能优化/细读这个项目其他模块的源码,则意义不大。去业界实习/看成熟数据库源码会更高效。