08 2021 档案

摘要:LevelDB的BlockHandle和Footer和读取block 主要作用就是记录一个block在sstable文件中的偏移量和大小 代码:table/format.h和table/format.cc class BlockHandle { public: // Maximum encoding 阅读全文
posted @ 2021-08-12 00:41 胖胖咩 阅读(275) 评论(0) 推荐(0)
摘要:LevelDB的block(block是sstable文件的存储单元) blokc的存储结构: # entry是表示一个key-value的条目 # restarts是每一轮前缀压缩时在block中的偏移量offset # num_of_restarts是重新进行前缀压缩的次数 # trailer是 阅读全文
posted @ 2021-08-11 19:15 胖胖咩 阅读(155) 评论(0) 推荐(0)
摘要:LevelDB的批处理(Batch) 主要是两个类,db/write_batch_internal.h,include/leveldb/write_batch.h,db/write_batch.cc namespace leveldb { class MemTable; // WriteBatchI 阅读全文
posted @ 2021-08-11 00:22 胖胖咩 阅读(176) 评论(0) 推荐(0)
摘要:LevelDB的memtable(内存中的数据) 存储在内存中的memtable的结构是跳表,有一个逻辑,当memtable的size达到了阈值后,就会将memtable转变为只读的imutable memtable,然后新生成一个memtable 代码文件:db/memtable.h,db/mem 阅读全文
posted @ 2021-08-11 00:21 胖胖咩 阅读(176) 评论(0) 推荐(0)
摘要:LevelDB的InternalKey和LookupKey InternalKey是在数据库内部使用的key,其实就是将普通的string类型的key封装了 LookupKey也是用来封装用户的key,作用是用来内部查询的时候使用 class InternalKey; // Value types 阅读全文
posted @ 2021-08-09 23:10 胖胖咩 阅读(474) 评论(0) 推荐(0)
摘要:LevelDB的过滤器(默认是布隆过滤器) 过滤器接口:include/leveldb/filter_policy.h namespace leveldb { class Slice; class LEVELDB_EXPORT FilterPolicy { public: virtual ~Filt 阅读全文
posted @ 2021-08-09 22:41 胖胖咩 阅读(153) 评论(0) 推荐(0)