leveldb
文章平均质量分 71
lihaihui1991
这个作者很懒,什么都没留下…
展开
-
leveldb NVM改造
NVM(Non-volatile Memory),非易失性内存,是一种新型的高速非易失性存储设备,具有百纳秒级的读写延迟和远高于SSD的读写吞吐能力,并且具有字节可寻址的特性,CPU能直接访问到NVM上的数据,不需要经过内存。原创 2024-09-03 17:45:37 · 395 阅读 · 0 评论 -
leveldb 代码阅读七
布隆过滤器(英语:Bloom Filter)是1970年由一个叫布隆的小伙子提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都远远超过一般的算法,缺点是有一定的误识别率和删除困难。原创 2024-08-28 17:39:12 · 903 阅读 · 0 评论 -
leveldb 代码阅读六
为了加快读取操作,LevelDB采取compaction方式对已有记录进行整理,通过这种方式,来删除掉一些不再有效的KV数据,减少数据规模和文件数量,compaction方式在LevelDB中具体为两种:minor和major。所有的Block格式都是相同的,一个Block默认大小为4KB【options.block_size】,当Block所占内存空间大于4KB则flush到文件中。index block用来存储所有datablock的相关索引信息。原创 2024-08-27 18:05:29 · 733 阅读 · 0 评论 -
leveldb 代码阅读五
MANIFEST文件是Level DB的元信息文件,记录的是版本管理。与log 格式相同,一个menfiest 记录的是一个record。原创 2024-08-20 10:42:11 · 139 阅读 · 0 评论 -
leveldb 代码阅读四
level::DB是一个接口类,实际的实现在DBimpl类。原创 2024-08-16 11:30:01 · 376 阅读 · 0 评论 -
leveldb 代码阅读三
options 解读。原创 2024-08-16 11:28:31 · 283 阅读 · 0 评论 -
leveldb 代码阅读二
WriteOption 结构WriteOptions 就是保存了一个是否 sync 的 bool 变量可以看到对于 Put 单个 kv 的情况,leveldb 默认实现也将它封装成一个 WriteBatch。原创 2024-08-16 11:27:21 · 429 阅读 · 0 评论 -
leveldb 代码阅读一
函数示例编码函数解码函数函数实现uint8_tuint8_tuint8_tuint8_tuint8_tuint64 同理constuint8_tuint32_tuint32_tuint32_tuint32_t函数解读。原创 2024-08-16 11:26:02 · 224 阅读 · 0 评论 -
[LevelDB] 编译和使用
LevelDB是Google开源的持久化KV单机数据库,具有很高的随机写,顺序读/写性能,但是随机读的性能很一般,也就是说,LevelDB很适合应用在查询较少,而写很多的场景。LevelDB应用了LSM (Log Structured Merge) 策略,lsm_tree对索引变更进行延迟及批量处理,并通过一种类似于归并排序的方式高效地将更新迁移到磁盘,降低索引插入开销,关于LSM,本文在后面也会简单提及。原创 2024-08-16 11:23:34 · 255 阅读 · 0 评论 -
leveldb 学习
leveldb 学习一1. leveldb 下载编译1.1 下载1.2 编译2. 代码阅读1. leveldb 下载编译1.1 下载下载链接:https://github.com/google/leveldb.gitGoogle test:https://github.com/google/googletest.git1.2 编译mkdir -p build && cd buildcmake -DCMAKE_BUILD_TYPE=Release .. &&原创 2020-06-21 13:56:22 · 160 阅读 · 1 评论