![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
文章平均质量分 78
feng_jiakai
这个作者很懒,什么都没留下…
展开
-
LevelDB memtable结构
基础函数 const char* GetVarint32Ptr(const char* p, const char* limit, uint32_t* v) 解析levelDB 中Varint32 类型的数据,在levelDB中数据一般先存储数据大小,然后存储真实的数据。 p :Varint32数据的起始地址; limit : Varint32数据最多用5位,所以limit 为p+5; v :数据的长度; return 返回真实数据的起始地址 EncodeFixed64函数 将uint64类型按照原创 2022-01-26 13:41:01 · 715 阅读 · 0 评论 -
levelDB compaction
compaction 分成两类: 1. minor compaction: minor compaction,当immemtable写满以后,需要将其落盘成SSTable,这个操作即为minor compaction。 **2. major compaction:**又分成三类 主动compaction: size compaction: seek compact: BackgroundCompaction函数 所有的compaction操作都是由后台线程进行调起的,优先级:minor compacti原创 2022-01-21 20:44:27 · 661 阅读 · 0 评论 -
levelDB源码阅读1
这里写自LE定义目录标题WriteBatch 类基本操作参考链接 WriteBatch 类 #ifndef STORAGE_LEVELDB_INCLUDE_WRITE_BATCH_H_ #define STORAGE_LEVELDB_INCLUDE_WRITE_BATCH_H_ #include <string> #include "leveldb/export.h" #include "leveldb/status.h" namespace leveldb { class Slice;原创 2022-01-13 21:55:26 · 232 阅读 · 0 评论 -
memcpy使用
memcpy使用 C 标准库 - <string.h> 声明 C 库函数 ,函数声明如下: void *memcpy(void *str1, const void *str2, size_t n) // 从存储区 str2 复制 n 个字符到存储区 str1。 参数 str1 – 指向用于存储复制内容的目标数组,类型强制转换为 void* 指针。 str2 – 指向要复制的数据源,类...转载 2019-09-17 10:04:59 · 344 阅读 · 0 评论