前言
上一篇文章已经讲述了RocksDB的基础概念,本文趁热打铁,将上文留下的作业以及RocksDB的基本操作集中说明一下,既帮助大家巩固下上文的概念,又为后文的高级操作以及特性打下基础。
总体来说,RocksDB的基础操作和LSM tree的基础操作基本相同,但是RocksDB在标准的LSM tree方案的基础上进行了定制化的优化,以支持自身的各种功能,下面就一起来看一下RocksDB的各种基本操作。
正文
写流程:
rocksdb写入时,直接以append方式写到WAL文件以及memtable,随即返回,因此非常快速。memtable达到一定阈值后切换为Immutable Memtable,只能读不能写。
Immutable memtable触发阈值后,后台Flush线程负责按照时间顺序将Immutable Memtable刷盘 生成Level 0 SST,Level 0 SST触发阈值后,经合并操作(compaction)生成level 1 SST,level 1 SST 合并操作生成level 2 SST,以此类推,生成level n SST。流程如下:

读流程:
按照 memtable --> Level 0 SST–> Level 1 SST --> … -> Level n SST的顺序读取数据。这和记录的新旧顺序是一的。因此只要在当前级别找到记录,就可以返回。流程如下:

Flush流程
上一章节讲述了Flush的定义,下面来讲一下Fl

本文深入探讨RocksDB的基础操作原理,包括写流程、读流程、Flush流程、Compaction操作、Compression操作及Ingest操作,并针对每种操作的具体流程进行细致说明。
最低0.47元/天 解锁文章
2万+

被折叠的 条评论
为什么被折叠?



