- 整体结构
--MYDB分为后端和前端,前后端通过socket进行交互
前端(客户端)用于读取用户输入,并发送到后端执行,输出返回结果
MYDB后端需要解析SQL
--MYDB的后端分为5个模块
分别是:
1、Transaction Manager事务管理器
2、Data Manager数据管理器
3、Version Manager版本管理器
4、Index Manager指针管理器
5、Table Manager表管理器
依赖关系如图:
实现顺序是:TM->DM->VM->IM->TBM
--每个模块的职责
1、TM通过维护XID文件来维护事务的状态,并提供接口供其他模块来查询某个事务的状态
2、DM直接管理数据库DB文件和日志文件
DM的主要职责:1、分页管理DB文件 并进行缓存 2、管理日志文件 保证在发生错误的时候可以根据日志进行恢复 3、抽象DB文件为DataItem供上层模块使用 并提供缓存
3、VM基于两段锁协议实现了调度序列的可串行化,并实现了MVCC以消除读写阻塞,同时实现了两种隔离级别
4、IM实现了基于B+树的索引
5、TBM实现了对字段和表的管理 同时解析SQL语句 并根据语句操作表
2、TM
--XID文件