leveldb/rocksdb
一缕阳光a
(1)、从2018年8月开始从事分布式数据库内核开发工作,包括自研分布式分析型数据库OLAP、自研分布式数据库HTAP,根据开源数据库实现本公司集群型的OLTP产品,以及现在正在做的根据opengaussDB开发的HTAP类型数据库。
(2)、乐于专研,对分布式数据库有强烈的兴趣。
个人邮箱: zgaoq@163.com。
展开
-
在leveldb中,为什么要有immutable memtable?
目的是:为了防止写入kv时被阻塞。设想,如果没有immutable memtable,当memtable满了之后后台线程需要将memtable 立即flush到新建的sst中,在flush的过程中,新的KV记录是无法写入的,只能等待,就会造成新写入的KV记录被阻塞。盗一个其他人的图如下:延伸:在leveldb中只有两个memtable:memtable和immutable memtable;但是在rocksdb中,memtable的数量是可以配置的,当memtable中的数据量超过设定值后,原创 2020-10-23 19:49:19 · 814 阅读 · 1 评论 -
leveldb中为什么L 0层中每个sst文件中key的范围都是有重叠的?
在leveldb中,level 0层中的sst文件是由immutable memtable通过后台线程flush得到的,但是由于immutable memtable中的key可能是由重复的,因此在leveldb中将sst文件中key的范围有重叠的所有sst文件都放在了level 0层中,而其他level层中sst文件中的key不会有重复的。下面的图使用了其他作者的图,如下:这样在查询的时候,将读放大的倍数都放在了level 0层中。...原创 2020-10-23 19:39:07 · 775 阅读 · 1 评论 -
RocksDB事务实现TransactionDB分析
基本概念1. LSN (log sequence number)RocksDB中的每一条记录(KeyValue)都有一个LogSequenceNumber(后面统称lsn),从最初的0开始,每次写入加1。该值为逻辑量,区别于InnoDB的lsn为redo log物理写入字节量。我有几张阿里云幸运券分享给你,用券购买或者升级阿里云相应产品会有特惠惊喜哦!把想要买的产品的幸运券都领走吧!快下手,马上就要抢光了。这个lsn在RocksDB内部的memtable中是单调递增的,在WriteAh.转载 2020-05-22 19:29:54 · 502 阅读 · 0 评论 -
Rocksdb的优劣及应用场景分析
Rocksdb的优劣及应用场景分析Rocksdb也是一样,也有它的优势劣势及特定的适用场景。今天我就从设计的角度来分析一下。基础架构 上图就是Rocksdb的基础架构。Rocksdb中引入了ColumnFamily(列族, CF)的概念,所谓列族也就是一系列kv组成的数据集。所有的读写操作都需要先指定列族。写操作先写WAL,再写memtable,memtable...转载 2020-01-16 11:38:17 · 1137 阅读 · 0 评论 -
Varint
什么是VarintVarint 是一种紧凑的表示数字的方法。它用一个或多个字节来表示一个数字,值越小的数字使用越少的字节数。这能减少用来表示数字的字节数。比如对于 int32 类型的数字,一般需要 4 个 byte 来表示。但是采用 Varint,对于很小的 int32 类型的数字,则可以用 1 个 byte 来表示。当然凡事都有好的也有不好的一面,采用 Varint 表示法,大的数字则需要...转载 2019-11-21 15:07:41 · 3485 阅读 · 0 评论 -
聊聊RocksDB Compact
导语对于 LevelCompact 策略,RocksDB会根据每一层不同的策略计算出CompactScore,根据CompactScore大小来决定那一层将会优先进行Compact,然后选择Level-N 和Level-(N+1)的文件进行Compact。如何计算CompactScore? 如何选择文件进行Compact?Compact有哪些参数?如何知道RocksDB当前的一个状态?...转载 2019-11-19 09:59:57 · 1038 阅读 · 0 评论 -
SkipList 以及高度的确定
转载:https://www.cnblogs.com/lnlvinso/p/8848883.html 结果:skiplist的高度是个随机值。SkipList理解 记下自己对跳表SkipList的理解。 SkipList采用空间换时间的思想,通过增加数据间的链接,达到加快查找速度的目的。 数据库LevelDB和RocksDB中用到了SkipLis...转载 2019-11-18 14:04:56 · 1302 阅读 · 0 评论 -
LevelDb实现原理
原文地址:http://www.samecity.com/blog/Index.asp?SortID=12,最近由于工作上的需求,需要用到leveldb,因此转载此文章用于以后的查询使用。LevelDb日知录之一:LevelDb 101 说起LevelDb也许您不清楚,但是如果作为IT工程师,不知道下面两位大神级别的工程师,那您的领导估计会Hold不住了:Jeff Dean和Sanj...转载 2019-06-19 10:20:58 · 192 阅读 · 0 评论 -
leveldb资料整理
转自:http://hideto.iteye.com/blog/1328921最近一段时间在学习leveldb的源码,找到了一些相关的资源,用于后续查考和学习使用。leveldb介绍http://code.google.com/p/leveldb/http://en.wikipedia.org/wiki/LevelDBhttp://highscalability.com/blo...翻译 2019-06-23 14:30:09 · 445 阅读 · 0 评论