key的编码
DB
rocksdb的blockcache的一些优化点
引子
记一些突然间的想法,防止后续忘了,以下是正文。
blockcahe的问题
rocksdb的blockcache目前遇到的,主要有:
- 官方实现中没有回收机制.
db笔记 - 事务1:隔离级别
锁
read lock write lock long duration lock short duration lock
rocksdb性能压测
压测rocksdb引擎,有两种思路:
- 自己写一个benchmark工具: 根据自己关心的kv pattern和access pattern,生成对应的kv pairs,然后入库,并发起对应的请求,最后收集结果。 通常不同类型的数据库都有符合不同数据模型的负载模型和不同的建模,如:TP型数据库的TPCxxx,AP型数据库的xxxx,图数据库的LDBC等。 这类思路下有很多相关工具,如:
rocksdb性能压测
压测rocksdb引擎,有两种思路:
- 自己写一个benchmark工具: 根据自己关心的kv pattern和access pattern,生成对应的kv pairs,然后入库,并发起对应的请求,最后收集结果。 通常不同类型的数据库都有符合不同数据模型的负载模型和不同的建模,如:TP型数据库的TPCxxx,AP型数据库的xxxx,图数据库的LDBC等。 这类思路下有很多相关工具,如:
类redis-list的持久化编码和复杂度分析
lsm读写放大分析(r1)
lsm读写放大分析(r2)
wal recovery would cleanup at least the first WAL
这段时间跟同事尝试修复长期以来项目中遗留的Rocksdb的Case,遇到些有意思的Case,这里记录一下。
some tips for rocksdb case fixing
-
对于不支持
-march=native
环境的,可以编译时export USE_SSE=1
.避免类似no such instruction:
shlx %r13,%rax,%rax'`的问题。 -
对于rocksdb的测试case,想保留测试db的,可以搞个
KEEP_DB
环境变量。测试类会根据这个环境变量决定是否清理测试DB。
some details about rocksdb::LRUCache
最近有同事找我讨论问题,觉得挺有趣的记录一下。
rocksdb::LRUHandle::key()
的历史
第一个问题是rocksdb::LRUHandle::key()
, 这个函数返回该handle内部存储的key,但为啥某些情况下却返回value呢?