漫谈RocksDB(三)基本操作——动如脱兔,静若处子

本文深入探讨RocksDB的基础操作原理,包括写流程、读流程、Flush流程、Compaction操作、Compression操作及Ingest操作,并针对每种操作的具体流程进行细致说明。

前言

上一篇文章已经讲述了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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值