随笔分类 -  leveldb源码解读

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

点击右上角即可分享
微信分享提示