RocksDB介绍

更新时间:2023-06-04 10:20:13 阅读: 评论:0

RocksDB介绍
因为使⽤到了MyRocks存储引擎,需要了解下下RocksDB,发现国内介绍的不详细就⾃⼰来写⼀遍吧。
概述:
RocksDB 是针对KV数据存储的⾼性能嵌⼊式数据库,由Facebook的Dhruba Borthakur于2012年4⽉创建的LevelDB的分⽀,最初的⽬标是提⾼服务⼯作负载的性能。
RocksDB针对多核CPU、⾼效快速存储(SSD)、I/O bound workload做了优化。
基于LSM树数据结构( log-structured merge-tree),由C++编写并官⽅提供C、C++、Java(官⽅提供的
称为RocksJava)三种语⾔的API,社区提供了不少第三⽅API,如python、go等。
RocksDB是开源的软件,早前遵循BSD3协议,在2017年7⽉修改为遵循多协议Apache2.0和GPL v2。
⽬前在⽣产系统上主要应⽤于互联⽹企业,如Facebook、Yahoo、Linkedin等。
功能:
和LevelDB类似,存储KV到随机⾃⼰数组(),数据是按照key逐位存储或者提供了⾃定义的⽐较器。
RocksDB提供了LevelDB的所有特性,此外还有:
事务
备份和快照
列族(column families)
Bloom filters
time to live (TTL) support
universal compaction
merge operators
统计信息收集(Statistics collection)
Geospatial indexing
RocksDB在性能、新增功能、数据结构和格式、调优和管理上提供了如下功能:
Performance手脚冰凉是怎么回事女性
Multithread compaction
Multithread memtable inrts
Reduced DB mutex holding
Optimized level-bad compaction style and universal compaction style
Prefix bloom filter
Memtable bloom filter
Single bloom filter covering the whole SST file
火箭画法
Write lock optimization
Improved Iter::Prev() performance
Fewer comparator calls during SkipList arches
Allocate memtable memory using huge page.
Features
Column Families
Transactions and WriteBatchWithIndex
Backup and Checkpoints
Merge Operators
Compaction Filters
RocksDB Java
Manual Compactions Run in Parallel with Automatic Compactions
Persistent Cache
Bulk loading
Forward Iterators/ Tailing iterator
Single delete
Delete files in range
Pin iterator key/value
Alternative Data Structures And Formats
Plain Table format for memory-only u cas
Vector-bad and hash-bad memtable format
Clock-bad cache (coming soon)
Pluggable information log
Pluggable information log
Annotate transaction log write with blob (for replication)
Tunability
Rate limiting
Tunable Slowdown and Stop threshold
Option to keep all files open
Option to keep all index and bloom filter blocks in block cache
Multiple WAL recovery modes
把春天留在心中Fadvi hints for readahead and to avoid caching in OS page cache
Option to pin indexes and bloom filters of L0 files in memory
More Compression Types: zlib, lz4, zstd
家事皂Compression Dictionary
Checksum Type: xxhash
Different level size multiplier and compression type for each level.
Manageability
Statistics
Thread-local profiling
More commands in command-line tools
音响功放接线图解Ur-defined table properties
Event listeners
More DB Properties
Dynamic option changes
Get options from a string or map
Persistent options to option files
万能职业系统
尽管RocksDB不是⼀个SQL 数据库,但是有facebook有修改了代码的MyRocks存储引擎作为MySQL的存储引擎。
和其他的NoSQL类似,RocksDB不提供关系型数据模型、不⽀持SQL查询,没有直接对辅助索引(condary indexes)⽀持。⽤户可以基于RocksDB构建⾃⼰的column families。很多应⽤程序把RocksDB当做库(libary),尽管他
提供rver或者CLI接⼝。
应⽤:
作为嵌⼊式数据库,RocksDB可以作为⼤的DBMS的存储引擎。⽬前有不少数据库将其改造为存储引擎:
太原市体育局
关系型数据库(RDBMS)
MyRocks:
facebook’s MySQL,MariaDB和Percona将其作为存储引擎
Cassandra on Rocks:Facebook的Instagram 开发了Cassandra on Rocks 提⾼了很多性能。
NewSQL:
CockroachDB将其作为后端的存储引擎;
TiDB 使⽤RocksDB作为存储引擎;
MongoDB:
Percona公司提供了MongoRocks 项⽬,将其作为存储引擎。
ceph存储:
ceph bluestore storage Layer 使⽤Rocks 作为OSD设备的元数据管理
Redis:
国内的360公司开源的pika使⽤rocksdb作为其后端存储。
广西自驾游ArangoDB 使⽤RocksDB替换掉了之前的存储引擎。
由于Rocks强悍的性能,有⽐LevelDB更强⼤的功能,在区块链兴起的时代,RocksDB基本作为区块链的
基础技术之⼀⽤于存储KV数据。
资料参考:
en.wikipedia/wiki/RocksDB

本文发布于:2023-06-04 10:20:13,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/858883.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:提供   作为   引擎
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图