rocksdb README

The project's README from github.com/facebook/rocksdb. As one markdown file: README.md.

RocksDB: A Persistent Key-Value Store for Flash and RAM Storage

CircleCI Status

RocksDB is developed and maintained by Facebook Database Engineering Team. It is built on earlier work on LevelDB by Sanjay Ghemawat ([email protected]) and Jeff Dean ([email protected])

This code is a library that forms the core building block for a fast key-value server, especially suited for storing data on flash drives. It has a Log-Structured-Merge-Database (LSM) design with flexible tradeoffs between Write-Amplification-Factor (WAF), Read-Amplification-Factor (RAF) and Space-Amplification-Factor (SAF). It has multi-threaded compactions, making it especially suitable for storing multiple terabytes of data in a single database.

Start with example usage here: https://github.com/facebook/rocksdb/tree/main/examples

See the github wiki for more explanation.

The public interface is in include/. Callers should not include or rely on the details of any other header files in this package. Those internal APIs may be changed without warning.

Questions and discussions are welcome on the RocksDB Developers Public Facebook group and email list on Google Groups.

License

RocksDB is dual-licensed under both the GPLv2 (found in the COPYING file in the root directory) and Apache 2.0 License (found in the LICENSE.Apache file in the root directory). You may select, at your option, one of the above-listed licenses.

rocksdb (facebook/rocksdb)

Searching Database…

32.2K ·GitHub
What is this?RocksDB is an embeddable, persistent key-value store for fast storage, built as a C++ library and developed by Facebook's Database Engineering team.
Is this a database server I deploy, or a library I link into my app?A library, not a server: you embed it in your application. The README describes it as the core building block you would use to build a fast key-value server.
How do I start using RocksDB in my own project?Start with the example usage linked in the README, then the GitHub wiki for build and usage details. As a C++ library, you compile it and link it into your application.
Which parts of the API are safe to build against?Only the headers in include/ — that is the public interface. Anything else is internal and may change without warning between versions.
How much data can a single RocksDB database hold?Multiple terabytes in one database. Multi-threaded compactions are what make handling data at that scale practical.
What storage is it built for — SSDs, spinning disks, or memory?Flash and RAM storage: the README's title is 'A Persistent Key-Value Store for Flash and RAM Storage', and it says the library is especially suited for storing data on flash drives.
What can I tune about how it balances write, read and space costs?Its LSM (Log-Structured-Merge-Database) design offers flexible tradeoffs between Write-Amplification-Factor (WAF), Read-Amplification-Factor (RAF) and Space-Amplification-Factor (SAF), so you can bias it toward write speed, read speed or disk footprint.
How is it related to LevelDB?It is built on earlier work on LevelDB by Sanjay Ghemawat and Jeff Dean, and is now developed and maintained by Facebook's Database Engineering team.
Creator
facebook
Size
246.1 MB
Stars
32.2K
Age
13y
Commits · 90 Days