DB读Get-leveldb源码剖析(11) 发表评论 读操作基于user_key可以找到当前最大SequenceNumber的数据,也支持获取指定快照的数据,本篇将分析具体调用流程及详细实现。阅读全文
SSTable之Compaction下篇-leveldb源码剖析(10) 发表评论 因Compaction的实现细节比较繁琐,故分为两部分进行源码剖析,本篇为下篇,主讲compaction的实际work及后续工作。阅读全文
SSTable之Compaction上篇-leveldb源码剖析(9) 1条回复 Compaction操作是以后台线程的形式进行,本部分主要讨论触发机制、合并策略以及详细流程等。本篇为上篇,主讲触发机制,minor compaction,人工和自动触发合并的前期准备工作等。阅读全文
SSTable之两级Cache-leveldb源码剖析(8) 发表评论 两级Cache,即TableCache和BlockCache,前者用于缓存SSTable的对应索引元数据,后者用于缓存文件block数据块。本篇主要分析key查找在MemTable(包括mem和imm)均未命中后续的查找过程,主要是Cache这部分的实现。阅读全文
SSTable之文件格式及生成-leveldb源码剖析(7) 发表评论 SSTable文件的生成时机,一是在将Immutable Memtable的内存数据flush落盘时,二是在做major compaction合并文件时,两者实际均通过封装的TableBuilder完成,本文仅讨论SSTable的文件格式,以及TableBuilder(包含BlockBuilder、FilterBlockBuilder)的运行过程。阅读全文