J u m p t o c o n t e n t
M a i n m e n u
M a i n m e n u
N a v i g a t i o n
● M a i n p a g e
● C o n t e n t s
● C u r r e n t e v e n t s
● R a n d o m a r t i c l e
● A b o u t W i k i p e d i a
● C o n t a c t u s
● D o n a t e
C o n t r i b u t e
● H e l p
● L e a r n t o e d i t
● C o m m u n i t y p o r t a l
● R e c e n t c h a n g e s
● U p l o a d f i l e
S e a r c h
Search
A p p e a r a n c e
● C r e a t e a c c o u n t
● L o g i n
P e r s o n a l t o o l s
● C r e a t e a c c o u n t
● L o g i n
P a g e s f o r l o g g e d o u t e d i t o r s l e a r n m o r e
● C o n t r i b u t i o n s
● T a l k
( T o p )
1
F e a t u r e s
2
H i s t o r y
3
I n t e g r a t i o n
T o g g l e I n t e g r a t i o n s u b s e c t i o n
3 . 1
A l t e r n a t i v e b a c k e n d
3 . 1 . 1
A r a n g o D B
3 . 1 . 2
C a s s a n d r a
3 . 1 . 3
M a r i a D B
3 . 1 . 4
M o n g o D B
3 . 1 . 5
M y S Q L
3 . 1 . 6
O x i g r a p h
3 . 1 . 7
U K V
3 . 2
E m b e d d e d
3 . 2 . 1
C e p h ' s B l u e S t o r e
3 . 2 . 2
A p a c h e F l i n k
3 . 2 . 3
F u s i o n D B
3 . 2 . 4
L o g D e v i c e L o g s D B
3 . 2 . 5
K a f k a S t r e a m s
3 . 2 . 6
M a n h a t t a n
3 . 2 . 7
R o c k s e t
3 . 2 . 8
S S D B
3 . 2 . 9
T i D B
3 . 2 . 1 0
Y u g a b y t e D B
4
T h i r d - p a r t y l a n g u a g e b i n d i n g s
5
R e f e r e n c e s
6
E x t e r n a l l i n k s
T o g g l e t h e t a b l e o f c o n t e n t s
R o c k s D B
4 l a n g u a g e s
● E s p a ñ o l
● 日 本 語
● T ü r k ç e
● 中 文
E d i t l i n k s
● A r t i c l e
● T a l k
E n g l i s h
● R e a d
● E d i t
● V i e w h i s t o r y
T o o l s
T o o l s
A c t i o n s
● R e a d
● E d i t
● V i e w h i s t o r y
G e n e r a l
● W h a t l i n k s h e r e
● R e l a t e d c h a n g e s
● U p l o a d f i l e
● S p e c i a l p a g e s
● P e r m a n e n t l i n k
● P a g e i n f o r m a t i o n
● C i t e t h i s p a g e
● G e t s h o r t e n e d U R L
● D o w n l o a d Q R c o d e
● W i k i d a t a i t e m
P r i n t / e x p o r t
● D o w n l o a d a s P D F
● P r i n t a b l e v e r s i o n
A p p e a r a n c e
F r o m W i k i p e d i a , t h e f r e e e n c y c l o p e d i a
Embedded key-value database
RocksDB is a high performance[2] [3] [4] [5] [6] embedded database for key-value data. It is a fork of Google's LevelDB optimized to exploit multi-core processors (CPUs), and make efficient use of fast storage, such as solid-state drives (SSD), for input/output (I/O) bound workloads. It is based on a log-structured merge-tree (LSM tree) data structure. It is written in C++ and provides official language bindings for C++ , C , and Java . Many third-party language bindings exist. RocksDB is free and open-source software , released originally under a BSD 3-clause license.[7] [8] [9] However, in July 2017 the project was migrated to a dual license of both Apache 2.0 and GPLv2 license.[10] This change helped its adoption in Apache Software Foundation's projects after blacklist of the previous BSD+Patents license clause.[11] [12]
RocksDB is used in production systems at various web-scale enterprises[13] including Facebook , Yahoo! ,[14] and LinkedIn .[15]
Features
[ edit ]
RocksDB, like LevelDB , stores keys and values in arbitrary byte arrays, and data is sorted byte-wise by key or by providing a custom comparator.
RocksDB provides all of the features of LevelDB, plus:
and others.[26]
RocksDB is not an SQL database (although MyRocks combines RocksDB with MySQL ). Like other NoSQL and dbm stores, it has no relational data model , and it does not support SQL queries. Also, it has no direct support for secondary indexes, however a user may build their own internally using Column Families or externally. Applications use RocksDB as a library , as it provides no server or command-line interface .
History
[ edit ]
RocksDB was created at Facebook by Dhruba Borthakur[27] [28] in April 2012, as a fork of LevelDB with the initial stated goal of improving performance for server workloads.[29] [30]
Integration
[ edit ]
As an embeddable database, RocksDB can be used as a storage engine within a larger database management system (DBMS). For example, Rockset uses RocksDB[31] mostly for analytical data processing.
Alternative backend
[ edit ]
The following projects have been started to replace or offer alternative storage engines for already-established database systems with RocksDB:
ArangoDB
[ edit ]
ArangoDB has added RocksDB to its previous storage engine ("mmfiles").[32] Starting with ArangoDB 3.4, RocksDB will be the default storage engine in ArangoDB.[33]
Cassandra
[ edit ]
Cassandra on RocksDB can improve the performance of Apache Cassandra significantly (3-4 times faster in general, 100 times faster in some use-cases).[citation needed ] The Instagram team at Facebook developed and open-sourced their code, along with benchmarks of their performance results.[34]
MariaDB
[ edit ]
MariaDB can use the MyRocks storage engine (which is forked from RocksDB) since MariaDB 10.2.5 (Alpha status) [35] and stable since MariaDB 10.2.16 in 2018.[36]
MongoDB
[ edit ]
The MongoRocks project provides a storage module for MongoDB where the storage engine is RocksDB.[37] [38] [39]
A related program is Rocks Strata, a tool written in Go , which allows managing incremental backups of MongoDB when RocksDB is used as the storage engine.[40]
MySQL
[ edit ]
The MyRocks project created a new RocksDB-based storage engine for MySQL .[41] [42] In-depth details about MyRocks were presented at Percona Live 2016.[43]
Oxigraph
[ edit ]
Oxigraph [44] is a graph database implementing the SPARQL standard, based on RocksDB
UKV
[ edit ]
The UKV[45] project allows users to use RocksDB on par with LevelDB as the underlying key-value store . It represents a shared abstraction for create, read, update and delete (CRUD) operations common to every storage engine. It augments it with structured bindings for several high-level languages, including Python , Java , and Go .
Embedded
[ edit ]
The following database systems and applications have chosen to use RocksDB as their embedded storage engine:
Ceph's BlueStore
[ edit ]
The Ceph's BlueStore storage layer uses RocksDB for metadata management in OSD devices.[46]
Apache Flink
[ edit ]
Apache Flink uses RocksDB to store checkpoints.[47]
FusionDB
[ edit ]
FusionDB[48] uses RocksDB as its storage engine for XML, Key/Value, and JSON.[49]
LogDevice LogsDB
[ edit ]
LogDevice's LogsDB is built atop RocksDB.[50]
Kafka Streams
[ edit ]
Kafka Streams uses RocksDB for its state stores.[51]
Manhattan
[ edit ]
The Manhattan Distributed Key-Value Store has used RocksDB as its primary engine to store Twitter data since 2018.[52]
Rockset
[ edit ]
The Rockset [53] service that is used for operational data analytics uses RocksDB as its storage engine.[54]
SSDB
[ edit ]
The ssdb-rocks[55] project uses RocksDB as the storage engine for the SSDB[56] NoSQL Database.
TiDB
[ edit ]
The TiDB[57] project uses RocksDB as its storage engine.[58]
YugabyteDB
[ edit ]
The YugabyteDB [59] database uses a modified version of RocksDB as part of its DocDB storage engine
Third-party language bindings
[ edit ]
Third-party programming language bindings available for RocksDB include:
C# [60]
Chicken Scheme [61]
D [62]
Elixir [63]
Erlang [64] [65]
Go [45] [66]
Haskell [67]
Java [45] [68]
Node.js [69]
Nim [70]
Objective-C , and Swift [71]
OCaml [72] [73]
Perl [74]
PHP [75]
Prolog [76]
Python [45] [77]
Ruby [78]
Rust [79]
References
[ edit ]
^ "Benchmarking the leveldb family" . 7 July 2014. Retrieved March 10, 2016 .
^ "Comparing LevelDB and RocksDB, take 2" . 27 April 2015. Retrieved March 10, 2016 .
^ "Benchmarking LevelDB vs. RocksDB vs. HyperLevelDB vs. LMDB Performance for InfluxDB" . 20 June 2014. Retrieved March 10, 2016 .
^ Golan-Gueta, Guy; Bortnikov, Edward; Hillel, Eschar; Keidar, Idit (April 21, 2015). "Scaling concurrent log-structured data stores". Proceedings of the Tenth European Conference on Computer Systems . pp. 1–14. doi :10.1145/2741948.2741973 . ISBN 9781450332385 . S2CID 5849146 .
^ "Facebook's latest open source effort: a flash-powered database called RocksDB" . 21 November 2013. Archived from the original on 24 February 2020. Retrieved March 10, 2016 .
^ "Under the Hood: Building and open-sourcing RocksDB" . Facebook . Retrieved March 10, 2016 .
^ "RocksDB - Facebook's Database Now Open Source" . Retrieved March 10, 2016 .
^ "GitHub pull request" . GitHub . Retrieved July 20, 2017 .
^ "Apache says 'no' to Facebook code libraries" . The Register . Retrieved July 20, 2017 .
^ "GitHub issue" . GitHub . Retrieved July 20, 2017 .
^ "Users.md" . GitHub . Retrieved December 1, 2015 .
^ "RocksDB on Steroids" . Retrieved March 10, 2016 .
^ "Benchmarking Apache Samza: 1.2 million messages per second on a single node" . Retrieved March 10, 2016 .
^ "RocksDB transactions" . GitHub . Retrieved 2016-04-04 .
^ "How to backup RocksDB?" . GitHub . Retrieved 2017-07-19 .
^ "Checkpoints" . GitHub . Retrieved 2017-07-19 .
^ "Column families in RocksDB" . GitHub . Retrieved 2016-04-04 .
^ "RocksDB bloom filters" . GitHub . Retrieved 2016-04-04 .
^ "RocksDB TTL support" . GitHub . Retrieved 2016-04-04 .
^ "Universal compaction" . GitHub . Retrieved 2016-04-04 .
^ "RocksDB merge operator" . GitHub . Retrieved 2016-04-04 .
^ "RocksDB perf context and IO stats context" . GitHub . Retrieved 2016-04-04 .
^ "Spatial indexing in RocksDB" . rocksdb.org . Retrieved 2018-07-19 .
^ "Features Not in LevelDB" . GitHub .
^ "First commit where RocksDB diverges from LevelDB" . GitHub . May 10, 2012. Retrieved March 15, 2016 .
^ "Rocksdb readme file" . GitHub . Nov 30, 2012. Retrieved March 15, 2016 .
^ "The History of RocksDB" . November 24, 2013. Retrieved March 10, 2016 .
^ Borthakur, Dhruba (November 22, 2013). "RocksDB: A High Performance Embedded Key-Value Store for Flash Storage - Data@Scale" . YouTube . Retrieved March 10, 2016 . ... The story of why we decided to do RocksDB ...
^ Dhoot, Sandeep (2019-06-27). "How We Use RocksDB at Rockset" . rockset.com . Retrieved 2023-03-01 .
^ "Comparing new RocksDB and MMFiles storage engines" . ArangoDB .
^ "RC1 ArangoDB 3.4 - Whats new?" . 6 September 2018.
^ "Open-sourcing a 10x reduction in Apache Cassandra tail latency" . 5 March 2018.
^ "MyRocks" . MariaDB KnowledgeBase . Retrieved 2019-04-28 .
^ "MariaDB 10.2.16 Release Notes" . MariaDB KnowledgeBase .
^ "mongodb-partners/mongo-rocks" . GitHub . 29 October 2021.
^ "Integrating RocksDB with MongoDB" . Retrieved July 19, 2018 .
^ "MongoDB + RocksDB at Parse" . Retrieved December 1, 2015 .
^ "facebookgo/rocks-strata" . GitHub . 31 October 2021.
^ "facebook/mysql-5.6" . GitHub . 2 November 2021.
^ "MyRocks: MySQL on RocksDB" (PDF) . Retrieved November 29, 2015 .
^ "MyRocks Deep Dive" . 19 April 2016. Retrieved May 9, 2016 .
^ Pellissier Tanon, Thomas (July 12, 2024). "Oxigraph" – via GitHub.
^ a b c d e "unum-cloud/ukv" . GitHub . 28 December 2022.
^ "Storage Devices -- Ceph Documentation" . Archived from the original on 2020-02-24. Retrieved 2017-11-08 .
^ "Apache Flink 1.8 Documentation: State Backends" . ci.apache.org . Retrieved 2019-08-11 .
^ "FusionDB" . Evolved Binary.
^ "The Design and Implementation of FusionDB" (PDF) . XML Prague.
^ "LogDevice: a distributed data store for logs" . Mark Marchukov, Facebook. 31 August 2017.
^ "Configuring a streams application" . kafka.apache.org . Retrieved 2024-03-11 .
^ "Adopting RocksDB within Manhattan" . Twitter . 28 December 2022.
^ "Rockset: Search and analytics database" . rockset.com .
^ "How we use RocksDB at Rockset" . rockset.com . Retrieved 2019-07-10 .
^ "ideawu/ssdb-rocks" . GitHub . 21 August 2021.
^ "Home" . ID-2Sbo .
^ "pingcap/tidb" . GitHub . 4 November 2021.
^ "TiDB Internal (I ) - Data Storage" . Shen Li. 11 July 2017.
^ "How We Built a High Performance Document Store on RocksDB?" . 20 February 2019.
^ "warrenfalk/rocksdb-sharp" . GitHub . 28 September 2021.
^ "RocksDB bindings for CHICKEN Scheme 5" . wiki.call-cc.org . Retrieved 2024-07-13 .
^ "b1naryth1ef/rocksdb" . GitHub . 22 October 2019.
^ "urbint/rox" . GitHub . September 2021.
^ "leo-project/erocksdb" . GitHub . September 2021.
^ "barrel-db / erlang-rocksdb · GitLab" . GitLab .
^ "tecbot/gorocksdb" . GitHub . 29 October 2021.
^ "rocksdb-haskell" . Hackage .
^ "RocksJava" . GitHub .
^ "rocksdb" . 25 March 2022.
^ "rocksdb" . GitHub .
^ "iabudiab/ObjectiveRocks" . GitHub . 2 August 2021.
^ "OCaml bindings for RocksDB" . GitHub . 8 October 2021.
^ "An OCaml RocksDb binding using ocaml-ctypes" . GitHub . 28 September 2020.
^ "RocksDB" . MetaCPAN .
^ "Photonios/rocksdb-php" . GitHub . 11 August 2021.
^ " "rocksdb" pack for SWI-Prolog" . www.swi-prolog.org .
^ "stephan-hof/pyrocksdb" . GitHub . 27 October 2021.
^ "rocksdb-ruby | RubyGems.org | your community gem host" . rubygems.org .
^ "rust-rocksdb/rust-rocksdb" . GitHub . 11 July 2024.
External links
[ edit ]
t
e
Products and services
People
Founders
Board
Executive officers
Oversight Board
Members
Board of Trustees
Former members
Notable employees
Open source
Mass media
Concepts
Business
Lists
Related
R e t r i e v e d f r o m " https://en.wikipedia.org/w/index.php?title=RocksDB&oldid=1234228451 "
C a t e g o r i e s :
● B i g t a b l e i m p l e m e n t a t i o n s
● N o S Q L
● D a t a b a s e e n g i n e s
● E m b e d d e d d a t a b a s e s
● C + + l i b r a r i e s
● F a c e b o o k s o f t w a r e
● K e y - v a l u e d a t a b a s e s
● O r d e r e d K e y - V a l u e S t o r e
H i d d e n c a t e g o r i e s :
● A r t i c l e s w i t h s h o r t d e s c r i p t i o n
● S h o r t d e s c r i p t i o n i s d i f f e r e n t f r o m W i k i d a t a
● A l l a r t i c l e s w i t h u n s o u r c e d s t a t e m e n t s
● A r t i c l e s w i t h u n s o u r c e d s t a t e m e n t s f r o m M a y 2 0 2 0
● O f f i c i a l w e b s i t e d i f f e r e n t i n W i k i d a t a a n d W i k i p e d i a
● T h i s p a g e w a s l a s t e d i t e d o n 1 3 J u l y 2 0 2 4 , a t 0 7 : 1 6 ( U T C ) .
● T e x t i s a v a i l a b l e u n d e r t h e C r e a t i v e C o m m o n s A t t r i b u t i o n - S h a r e A l i k e L i c e n s e 4 . 0 ;
a d d i t i o n a l t e r m s m a y a p p l y . B y u s i n g t h i s s i t e , y o u a g r e e t o t h e T e r m s o f U s e a n d P r i v a c y P o l i c y . W i k i p e d i a ® i s a r e g i s t e r e d t r a d e m a r k o f t h e W i k i m e d i a F o u n d a t i o n , I n c . , a n o n - p r o f i t o r g a n i z a t i o n .
● P r i v a c y p o l i c y
● A b o u t W i k i p e d i a
● D i s c l a i m e r s
● C o n t a c t W i k i p e d i a
● C o d e o f C o n d u c t
● D e v e l o p e r s
● S t a t i s t i c s
● C o o k i e s t a t e m e n t
● M o b i l e v i e w