本篇主要讲解下leveldb内部所使用的Cache整体结构及初始化好流程。Cache主要分TableCache和BlockCache。
TableCache:
注:
当前版本是1.22版本,落地的文件好像不是sst格式,而是ldb格式。
BlockCache:
注:
因为打开的ldb(就是sst)文件中的BlockData都是存放于全局一份的BlockCache中的,
而不同的ldb文件其BlockData的offset可能相同,为了区分不同ldb文件中的BlockData的
offset,所以要给每个ldb文件分配一个唯一的 cache_id,这样key = cache_id + block_offset的组合就是唯一的了。
本篇主要是对leveldb中的Cache结构、流程、类关系图进行的整体的说明,接下来的文章会进行源码的走读注解。