ARTICLE · 1087265
【LevelDB 源码阅读】00 开篇词:我为什么
【LevelDB 源码阅读】00 开篇词:我为什么
【LevelDB 源码阅读】00 开篇词:我为什么
刚接触 LevelDB 时,我看了不少原理文章。什么 LSM Tree、MemTable,听着挺熟,但一碰到具体问题还是懵。
后来我直接去啃源码,想搞明白一次 Put 到底经历了啥。顺着数据流一路往下跟,才发现日志、内存和文件根本不是各干各的。一个局部的代码选择,背后全是整个存储流程的死约束。
有意思的是,我把它的跳表和 Redis 放一起比了比。同样是跳表,Redis 里的长期更新,LevelDB 里的写满就扔。数据结构选哪种,真不能只看时间复杂度,还得看数据的死期和去向。
所以这个系列我不打算逐行翻译代码。我会跟着一条短链数据的写入和查询跑完全程。看看它在内存和磁盘之间怎么流转,再顺手对比下其他数据库是怎么干的。
原文【LevelDB 源码阅读】00 开篇词:我为什么想学习 LevelDB 源码
广东,27分钟前,