rocksdb引擎简析

Rocksdb是Facebook基于Leveldb开发的key-value存储系统,它引入了ColumnFamily概念,支持多线程Compaction和原地更新等优化。在写流程中,数据先写入log和memtable,然后触发FLUSH和COMPACTION,形成层级结构的SST文件。读流程遵循memtable到SST文件的顺序,利用布隆过滤器减少I/O操作。Rocksdb的优化策略使其在数据库领域具有更高的性能和灵活性。
摘要由CSDN通过智能技术生成

rocksdb简介

Rocksdb是facebook开源的key-value存储系统,其设计是基于Google开源的Leveldb,因此应用了LSM (Long Structure Merge Tree)策略。

leveldb 构架

在这里插入图片描述
从图中可以看出,构成LevelDb静态结构的包括六个主要部分:内存中的MemTable和Immutable MemTable以及磁盘上的几种主要文件:Current文件,Manifest文件,log文件以及SSTable文件。

当应用写入一条Key:Value记录的时候,LevelDb会先往log文件里写入,成功后将记录插进Memtable中,这样基本就算完成了写入操作,因为一次写入操作只涉及一次磁盘顺序写和一次内存写入,所以这是为何说LevelDb写入速度极快的主要原因。

Log文件在系统中的作用主要用于系统崩溃时恢复数据。当系统崩溃时,如果内存中的数据还没有来得及Dump到磁盘,可以从Log文件的记录恢复内存中的Memtable。

当Memtable插入的数据占用内存到了一个界限后,需要将内存的记录导出到外存文件中,LevleDb会生成新的Log文件和Memtable,原先的Memtable就成为Immutable Memtable,顾名思义,就是说这个Memtable的内容是不可更改的,只能读不能写入或者删除。新到来的数据被记入新的Log文件和Memtable,LevelDb后台调度会将

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值