单机版基本框架已经实现完毕。待完成:flex/bison语法解析模块、磁盘级索引、磁盘级归并排序、java驱动、分布式。
mydb
之所以有自己实现一个数据库的想法,源于组内的任务。简单说明,并附上源码,博君一乐。
功能
- 面向文档,数据格式为JSON,底层存储格式为BSON。
- 可以对数据进行CRUD,通过_id进行搜索。
- 客户端支持多节点集群,数据按唯一_id散列至相应节点。
整体架构
服务端架构
请求解析:消息组件(消息协议控制)、进程模型组件(入口main函数、线程调度逻辑)。
请求处理:runtime(从PMD接受被解析好的请求,跟底层的DMS和IXM进行通讯读写数据)。
存储访问:数据管理服务、索引管理组件(散列索引)。
通用组件:操作系统服务、BSON数据结构、监控组件、问题诊断组件。
客户端架构
用户通过在Edb的cmd中输入命令。
命令经过命令工厂得到对应处理函数,进行CRUD。