随笔分类 - leveldb源码解读
摘要:DBimpl level::DB是一个接口类,实际的实现在DBimpl类。 创建DB 在硬盘内会生成哪些文件 dbname/[0-9]+.log:log文件包含了最新的db更新。每个entry更新都以append的方式追加到文件结尾。 LOCK:数据库锁 dbname/MANIFEST-[0-9]+
阅读全文
摘要:options 解读 Options 数据库设置 压缩类型 //数据库内容存储在一组块中,每个块包含一个键、值对序列。 //在存储到文件中之前,可以压缩每个块。 //下面的枚举描述用于压缩块的压缩方法(如果有)。 enum CompressionType { kNoCompression = 0x0
阅读全文
摘要:[LevelDB] 编译和使用 1、LevelDB简介 LevelDB是Google开源的持久化KV单机数据库,具有很高的随机写,顺序读/写性能,但是随机读的性能很一般,也就是说,LevelDB很适合应用在查询较少,而写很多的场景。LevelDB应用了LSM (Log Structured Merg
阅读全文
摘要:1 Put 操作 1.1 接口函数: 接口: // Convenience methods Status DBImpl::Put(const WriteOptions& o, const Slice& key, const Slice& val) { return DB::Put(o, key, v
阅读全文
摘要:1 coding.h 数据编码 1.1 uint 编码示例 函数示例 编码函数 inline void EncodeFixed32(char* dst, uint32_t value) inline void EncodeFixed64(char* dst, uint64_t value) 解码函数
阅读全文