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
这是什么东西?RocksDB 是一个可嵌入的持久化键值存储库,面向高速存储,以 C++ 库的形式构建,由 Facebook 的数据库工程团队开发。
这是我需要部署的数据库服务器,还是要链接进我应用里的库?是库,不是服务器:你要把它嵌入到自己的应用里。README 把它描述为你构建一个快速键值服务器时使用的核心基础组件。
我怎么在自己的项目里开始使用 RocksDB?先从 README 里链接的示例用法入手,再看 GitHub wiki 了解构建和使用细节。作为一个 C++ 库,你需要先编译它,然后链接到你的应用中。
API 里哪些部分是可以放心依赖的?只有 include/ 里的头文件,那才是公开接口。其他内容都属于内部实现,在不同版本之间可能随时变更,不会另行通知。
单个 RocksDB 数据库能存多少数据?一个数据库可以存多个 TB 的数据。多线程压缩(compaction)正是让这种规模的数据处理变得可行的关键。
它是为哪种存储设计的——SSD、机械硬盘还是内存?面向闪存和内存存储:README 的标题就是 'A Persistent Key-Value Store for Flash and RAM Storage',并且说明该库特别适合把数据存储在闪存上。
在写入、读取和空间占用之间,我可以调整哪些取舍?它采用 LSM(Log-Structured-Merge-Database,日志结构合并数据库)设计,在写放大系数(WAF)、读放大系数(RAF)和空间放大系数(SAF)之间提供灵活的取舍,你可以让它偏向写入速度、读取速度或磁盘占用。
它和 LevelDB 是什么关系?它建立在 Sanjay Ghemawat 和 Jeff Dean 早期对 LevelDB 的工作基础之上,现在由 Facebook 的数据库工程团队开发和维护。
Creator
facebook
Size
246.1 MB
Stars
32.2K
Age
13y
Commits · 90 Days