ELI5: RocksDB – Quick Information Storage
If you’re looking for an open source storage engine library with a key / value interface, look no further. RocksDB was released as open source in 2013 and continues to be widely used in the community and on Facebook to manage persistent data and server queries. By and large, RocksDB is known for being particularly suitable for flash drives, but also for pure storage, hard drives or remote storage.
To find out more, read below or watch the embedded video where we explain it in easy to understand terms (or, as is commonly known on the internet, ELI5).
What is the project
RocksDB was originally spun off from LevelDB’s Facebook database engineering team. Since then, the project has been heavily optimized for flash with extremely low latencies. Key features of RocksDB include the ability to develop on multi-core processors, the flexibility to store small to medium-sized keys / values on fast storage, and to work optimally with application servers that store terabytes of data.
From an architectural point of view, the keys and values in RocksDB are arbitrary byte streams. With a RocksDB backend, you can quickly set and query column families, update, access and traverse values in the database, perform multi-operation transactions, and incorporate multi-threaded compression.
If you are considering using RocksDB, you should also ensure that your primary design is optimized for performance, production support, and backward compatibility. RocksDB servers should be configurable to support heavy read and update workloads, support debugging and deployment environments, and function effectively regardless of releases of new or older versions of the library.
How is the FB library used?
RocksDB is used extensively for storing persistent data on SSD on Facebook and is also used by various services that serve online queries on hard drives.
Through RocksDB we are able to create various data compression algorithm tools for production support and debugging in an adaptive and automatic way.
What resources does it have?
To learn more about RocksDB, visit its website, which has documentation and a more detailed overview of how it works. The RocksDB GitHub repository has guides and examples on how to use the library for your own applications.
If you have any further questions about RocksDB, please let us know on our YouTube channel or tweet us. We always want to hear from you, and we hope you find this open source project and the new ELI5 series useful.
About the ELI5 series
In a series of short videos (approx. 1 minute long) one of our developer advocates in the Facebook Open Source Team explains a Facebook Open Source project in an easy-to-understand and user-friendly way.
For each of these videos we will write an accompanying blog post (like the one you are reading now), which you can find on our YouTube channel.
To learn more about Facebook Open Source, visit our open source site, subscribe to our YouTube channel, or follow us on Twitter and Facebook.