facebook/rocksdb

A library that provides an embeddable, persistent key-value store for fast storage.

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 36 minutes ago
Added to GitGenius on April 8th, 2021
Created on November 30th, 2012
Open Issues & Pull Requests: 1,620 (+0)
Number of forks: 6,906
Total Stargazers: 32,007 (+0)
Total Subscribers: 981 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 3.8 days
Mean response time: 270.8 days
90th percentile: 1020.4 days
Tracked items: 409

How this project is maintained

Around half of the issues opened in the past year never receive a reply. 98% of open issues come from outside the core team, so the backlog reflects real-world use rather than internal planning. Work labelled "java" is answered fastest, typically in about 16 hours, while "java-api" waits about 42 months. 71% of tracked open issues have had no activity in three months, so the open count overstates what is actively being worked. Only 1% of issues opened in the past year have been closed.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 916
New in 7 days: 3
Closed in 7 days: 0
Avg open age: 1,222 days
Stale 30+ days: 891
Stale 90+ days: 860

Recent activity

Opened in 7 days: 3
Closed in 7 days: 0
Comments in 7 days: 6
Events in 7 days: 17

Top labels

  • abandoned-or-aged-out (342)
  • up-for-grabs (329)
  • java-api (304)
  • question (236)
  • bug (136)
  • enhancement (121)
  • waiting (99)
  • windows (64)

Detailed Description

RocksDB is an embeddable, persistent key-value store library developed and maintained by Facebook's Database Engineering Team. Written in C++, it provides the core building block for fast key-value servers, with particular optimization for storing data on flash drives and SSDs. The library is built on earlier foundational work from LevelDB, created by Sanjay Ghemawat and Jeff Dean at Google, and extends that design with significant enhancements for modern storage hardware and workloads.

The library implements a Log-Structured-Merge-Database (LSM) design that offers flexible tradeoffs between Write-Amplification-Factor, Read-Amplification-Factor, and Space-Amplification-Factor. This architectural choice makes RocksDB especially suitable for scenarios where multiple terabytes of data need to be stored in a single database. The multi-threaded compaction support enables efficient concurrent operations, addressing the performance demands of large-scale data storage systems. RocksDB's design emphasizes both read and write optimization, with specific attention to reducing read amplification and optimizing for SSD characteristics.

The repository is dual-licensed under GPLv2 and Apache 2.0, allowing flexibility for different use cases and integration scenarios. The public API is clearly separated in the include directory, with the project explicitly noting that internal header files may change without warning, establishing clear boundaries between stable and internal interfaces.

Community engagement around RocksDB is active across multiple channels. The project maintains a Facebook group called RocksDB Developers Public and a Google Groups email list for questions and discussions.

The library's focus on memory efficiency, data compression, crash consistency, and transactional support makes it suitable for applications requiring reliable, high-performance persistent storage. Example usage is provided in the examples directory, and comprehensive documentation is available through the GitHub wiki, supporting developers in understanding and implementing RocksDB in their systems.