ARTICLE · 1094450
【LevelDB 源码阅读】01 LevelDB 全貌:历
【LevelDB 源码阅读】01 LevelDB 全貌:历
2006 年 Google 发 Bigtable 论文,作者名单里那俩人,五年后又署名了开源项目 LevelDB。它其实就是把 Bigtable 单机存储那层抽出来重写。
这东西是个嵌入式库,不是 MySQL 那种独立服务。API 就 11 个方法,十几年没怎么变过。代价是它靠文件锁独占数据,多个进程没法共享同一份。
不到两万行代码,塞进了 WAL、快照和压缩。整个库按读写拆得很清楚:写入逻辑全在 db 目录,SSTable 格式在 table,读取则是两边交汇。
我跑了个短链接 demo,只 put 了一次数据。去磁盘一看,64 字节的 WAL 文件里,我的 key 和 URL 明文躺着。而元数据文件纹丝不动——一次写入,确实只动了 WAL。
拿它跟 Redis 比就清楚了:Redis 吃内存,LevelDB 吃磁盘;Redis 接网络客户端,它直接嵌进你进程里。选型就看一件事:你要的是单机单进程,还是多端共享。
原文【LevelDB 源码阅读】01 LevelDB 全貌:历史、定位与代码地图
广东,2小时前,