
rocksdb
文章平均质量分 94
cocoti
这个作者很懒,什么都没留下…
展开
-
rocksdb介绍之compaction流程
rocksdb最常用的compaction方式是Leveled Compaction,首先介绍一下Leveled Compaction。参考https://github.com/facebook/rocksdb/wiki/Leveled-Compaction数据库的数据存放在sst文件中,sst文件有多个,会分到不同的level(L0,L1,L2…)中。最新的数据先保存在内存中,满足一定条件后写入到L0的sst文件,sst文件写入后不会再进行修改,只能读取、删除。L0有几个文件数量相关的配置:当L0层的原创 2022-06-23 16:57:49 · 2769 阅读 · 5 评论 -
rocksdb介绍之数据写入流程
rocksdb是一个kv数据库,其介绍可以参考http://vpha.rd.tp-link.net/phame/post/view/3566/rocksdb_%E5%AD%98%E5%82%A8%E5%8E%9F%E7%90%86%E4%BB%8B%E7%BB%8D/本文主要介绍rocksdb写入数据的流程与相关代码,因为是边学习边写的,可能有一些疏漏请读者见谅。rocksdb的写入操作大致可以分为4中:put, merge, deletion, range deletion。put指的是插入操作,插入一个原创 2022-06-23 16:53:51 · 2534 阅读 · 0 评论 -
rocksdb设计架构
rocksdb是一个kv(key和value作为一条数据,一般key用于查询,value存储数据)存储引擎,常用于数据库存储数据。rocksdb的编译产物是动态库,无法直接使用,没有提供sql命令,一般需要在程序中调用rocksdb提供的api进行对数据库的读写等操作。rocksdb是以leveldb为基础开发的,都使用了LSM Tree来存储数据。rocksdb的主要设计目标是满足使用需求的同时,提供高性能的存储,相比leveldb提供了很多额外的特性,优化性能。rocksdb提供了很多的参数配置,所以非原创 2022-06-15 11:46:16 · 1042 阅读 · 0 评论 -
rocksdb数据库的打开过程(DBImpl::open)
简要流程rocksdb版本:6.19DB::open函数:Status DB::Open(const DBOptions& db_options, const std::string& dbname, const std::vector<ColumnFamilyDescriptor>& column_families, std::vector<ColumnFamilyHandle*>*原创 2021-12-07 16:23:21 · 3873 阅读 · 0 评论