Leveldb 源码详解系列之八: 版本(Version)
Version 是 leveldb 在磁盘上的文件 level 结构的抽象, 也是访问磁盘文件的隘口. 也就是说, 要读取磁盘上的文件, 必须要经过 Version. 要针对磁盘上的数据库做一些优化或者统计,
上一篇讲了 leveldb 中 Table
的设计和实现, 它是磁盘 sstable 文件的内存形式, 但是 Table
在实际中不会被用户直接用到, 而是借助 TableCache
.
leveldb, leveldb, 每个 level 保存的内容就是一组 sorted string table (简称 sstable) 文件.
本文基于内部分享 <“抄"能力养成系列 – MapReduce: 分布式计算系统设计与实现> 整理.
2003 年开始 Google 陆续放出三套系统的设计(GFS/MapReduce/Bigtable), 在互联网届掀起云计算狂潮一直影响至今. MapReduce 作为老二出场, 因为它的实现依赖于之前分享的 GFS 作为存储. 该论文一出, 便直接催生了 Hadoop 另一个重量级同名框架 MapReduce 的诞生. 时光荏苒, 虽然后面又出现了 spark/flink, 但是 MapReduce 在批处理领域的地位至今牢固. 下面就让我们一起看看 MapReduce 的设计, 希望为各位后续系统研发提供灵感. (Salute to Jeff).