三年前我就想写一个关系数据库了,无奈却苦于 B+树算法的实现,如今数据库仍旧没着落,但总算写出 B+树实现了磁盘落地。虽然只是个 demo ,但算法上保证完备,实践上经久耐操,对百万级样本处理达到秒级性能。附上源码以及测试用例(包括文件落地和读写),望数据库和存储大牛们切磋指教!
https://github.com/begeekmyfriend/bplustree
一种玩法:
随机生成一百万样本和四百万条 CRUD 指令,将结果存储到/tmp/data.bp和/tmp/metadata.bp中
./coverage_build.sh
退出后再次运行 demo ,读取默认保存的/tmp/data.bp和/tmp/metadata.bp
./demo_build.sh
使用 dump 指令在终端上画出整个树形结构(见 help 输出)
注意:下次玩的时候记得更改文件名,否则会把文件中原有的数据读入
顺便说一句,代码质量基本属于principle(al)级别,电脑搞坏我全陪!