-
最近文章
近期评论
- minervaxf60 在 示例页面 上的评论
- MargaritaKa 在 示例页面 上的评论
- AnnaCug 在 示例页面 上的评论
- KarinaSaf 在 示例页面 上的评论
- MariaFus 在 示例页面 上的评论
分类目录
友情链接
功能
标签归档:key
leveldb注释7–key与value
作为一个kv的系统,key的存储至关重要。在leveldb中,主要涉及到如下几个key,user_key、InternalKey与LookupKey(memtable_key)。 其关系构成如下图。user_key就是用户输入的key,而InternalKey在user_key的基础上封装了sequence_num+type。sequence_num是一个全局递增的序列号,每一次Put操作都会递增。这样,不同时间的写入操作会得到不一样的sequence_num。前面章节中提到的sstable单条record中的key,其内部其实就是一个InternalKey。sequence_num主要跟snapshot机制与version机制相关,对压缩会产生一定影响。这些我们在后续章节分析。根据type字段,可以获知本次写入操作是写还是删除(也就是说删除是一种特殊的写)。而LookupKey/memtable_key用于在memtable中,多了一个长度字段。代码主要在dbformat.cc/.h中。