数据库方向 - 研究生生涯成长记录
作为一篇记录/资源帖,将不定时分享数据库学习进度,心得,以及学习资源整合到这一篇博客。
文章目录
转战知乎了,知乎只发优质文章
链接:https://www.zhihu.com/people/kai-shui-a
0-前言
能力基础(考研后)
- 专业课:操作系统,数据结构,计算机组成原理,计算机网络基础扎实。数据库本科基本等于没学(刚及格)。
- 代码:代码量还可以,但没做过严格的线上项目,也没有比较深入的CPP能力(差不多是当成C来写的)
- 研究方向:内存数据库。
文章内容(会增加项目)
- 学习日志(附带对应笔记或资源链接)
- 学习资源整合
1-成长日志
---- 2022 ----
2022.04
- CMU15445 全部课程(除了最后分布式那两节),对数据库构成和设计有了基本了解,学会了很多专业英语单词。
- Main Memory Database Systems 综述阅读(一遍粗看,一遍笔记,没有完全吃透)
2022.05
- 海南当义工,冲浪一个月
2022.06
- CMU15445课设:Project1,Project2(我的笔记:1,2)
- Opengauss-MOT 浅看了下华为的数据库的内存引擎,没有记住太多东西
2022.07
- CMU15445课设:Project3(我的笔记:3)
- CMU15721-lecture 12 Recovery Protocols:内存数据库日志和恢复办法。
- peloton CMU的一个开源内存数据库存储引擎,日志系统部分源码理解+文档撰写(我的文档)
2022.08
- 仿照 peloton 日志部分的源码设计了一个日志系统的框架(但后来没有用到)
2022.09
(CMU15445 的项目太保姆了,除了内核的代码和C++,没学到太多其它的东西,所以开学有点磕磕绊绊)
- 编译 mysql-8.0 + Mypeloton 存储引擎数据库源码,本来可以很简单,但折腾了很多方案(子系统,虚拟机,双系统,远程)
- 折腾的时候这些方面都有学到新的东西:Docker,Cmake,gdb,wsl2,Clion(目前使用的IDLE),Linux。
2022.10
- 要给 peleton 日志部分加功能,所以 peloton 日志部分的代码可以说是滚瓜烂熟了,跟日志相关的 concurrency, store 部分也稍微看了下
- 顺便看了些 mysql 连接 peloton 存储引擎的接口部分代码。
- 给 peloton 实现了一个用日志文件构建快照的检查点,只要能获取到日志文件就可构建快照,甚至可以在另外一台电脑上进行。
2022.11 - 2022.12
- peloton 日志代码逻辑部分有重大错误,推翻重写了。
- 为 peloton 日志增加了多线程落盘和恢复功能。
- 为 peloton 增加了运行中检查点,修复 bug 过程中,熟悉了 peloton storage 部分的代码。
- 为 peloton 增加了索引恢复功能,了解了一些索引部分的知识。
---- 2023 ----
2023.01 - 2023.02
- 为了将 peloton 运用在 MGR 场景,对 peloton 中对 mysql 存储引擎接口部分的实现进行了修改和补充,主要是使其满足 xa 两阶段提交协议。从而学到了mysql存储引擎接口的一些知识,也从源码层面了解了 mysql 加上 binlog 后,底层提交的逻辑。
- 测试 MGR 时,学到了一些高可用的基本概念,学会了基本的 mysql 主从布局的配置。
2023.03
- 看了一遍 raft
- 横向的 MGR 有点问题,还在修改
- 未来可能做 Larger-than-memory DB,看了些论文
- 开始刷力扣了,为实习做准备
2-学习资源
数据库相关
- CMU 15445:卡耐基梅隆大学经典数据库课程
- Main Memory Database Systems一篇优质内存数据库科研综述
- CMU 15721:CMU数据库大牛老老师数的据库前言技术paper研读课程(附带论文)
- 如何在win10用vscode编写 CMU-15445-lab:我做实验配置环境的经验
VScode配置c++,插件,主题
- 官方c++插件配置文档
- 使用clang对代码自动格式化
- 好看的主题:Dracula Official(直接在拓展处下载)
win10安装linux子系统并进行开发
Linux相关
git 相关
其他
论文管理工具 Zotero 安装翻译插件 translator
Zotero pdf 预览插件