当前位置: 首页 > 工具软件 > RocksDB > 使用案例 >

RocksDB说明文档

暴博远
2023-12-01

(Owed by: 春夜喜雨 http://blog.csdn.net/chunyexiyu)
翻译来源:https://github.com/facebook/rocksdb
翻译来源:https://github.com/facebook/rocksdb/wiki

RocksDB:一个持久化到闪存和磁盘等存储器的键值存储数据库

RocksDB是被facebook数据库引擎团队开发出来并维护着。
它早期构建于Sanjay Ghemawat和Jeff Dean开发的LevelDB。

它的库中代码构建了一个核心特点:快速的键值存储服务,特别适合于在flash驱动器上存储数据。
它有一个日志结构归并数据库设计(LSM),并在写放大(WAF),读放大(RAF),空间放大(SAF)上提供灵活的折中处理。
它具有多线程归并,从而让它更适合于在一个数据库中存储TB级的数据。

使用样例参考https://github.com/facebook/rocksdb/tree/main/examples
在github wiki查看更多解释 https://github.com/facebook/rocksdb/wiki

对外接口位于include目录下。
调用者不应依赖包中其它目录中的头文件中的细节,其它头文件间可能会在不做通知警告的情况下进行修改。

欢迎在开发群组中进行提问和讨论。https://www.facebook.com/groups/rocksdb.dev/ facebook群组 和 https://groups.google.com/g/rocksdb google邮件群组中。

RocksDB: A Persistent Key-Value Store for Flash and RAM Storage
RocksDB is developed and maintained by Facebook Database Engineering Team.
It is built on earlier work on LevelDB by Sanjay Ghemawat (sanjay@google.com) and Jeff Dean (jeff@google.com)
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具有双重许可,在GPLv2和Apache2.0许可证下。
你可以基于自身观点倾向,选择以上的一个许可证。

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.

Welcome to RocksDB 欢迎来到RocksDB

RocksDB是一个提供KV键值接口的存储引擎,它的KV键值是任意的字节流。
它是一个C++库。
它是由facebook基于LevelDB之上开发,提供向后兼容Leveldb的API接口。

RocksDB支持多种存储硬件,最初意图用于支持快速闪存介质。
它使用日志结构数据库引擎用于存储,并全部使用C++来编写,另外也提供了java的包装RocksJava,参见https://github.com/facebook/rocksdb/wiki/RocksJava-Basics。

RocksDB能够适配多种生产环境,包括纯内存,Flash闪存,硬盘 或 远程存储。
这些适配并非是自动适配,而是通过高度灵活的配置项设置来提供,由外部来打开配置项支持。
RocksDB提供了多种压缩算法和良好的工具提供产品支撑和调试。

RocksDB is a storage engine with key/value interface, where keys and values are arbitrary byte streams.
It is a C++ library.
It was developed at Facebook based on LevelDB and provides backwards-compatible support for LevelDB APIs.
RocksDB supports various storage hardware, with fast flash as the initial focus.
It uses a Log Structured Database Engine for storage, is written entirely in C++, and has a Java wrapper called RocksJava. See RocksJava Basics.
RocksDB can adapt to a variety of production environments, including pure memory, Flash, hard disks or remote storage.
Where RocksDB cannot automatically adapt, highly flexible configuration settings are provided to allow users to tune it for them.
It supports various compression algorithms and good tools for production support and debugging.

Features 特性

-为想要在本地或远程存储系统中存储几个TB数据应用服务,提供专门的设计。
-为在快速存储器上存储较小或中度大小的KV键值提供优化,例如存储在Flash闪存设备或内存中的情况。
-在多核系统中工作良好

-Designed for application servers wanting to store up to a few terabytes of data on local or remote storage systems.
-Optimized for storing small to medium size key-values on fast storage – flash devices or in-memory
-It works well on processors with many cores

Features Not in LevelDB 没有的一些特性

Rocksdb具备Leveldb中没有的一些特性。
在RocksDB引入了许多新的主要特性,参考链接内容 https://github.com/facebook/rocksdb/wiki/Features-Not-in-LevelDB

RocksDB introduces dozens of new major features. See the list of features not in LevelDB.

Getting Started 开始

大多数读者会想要从开发指导的“简介”和“基本操作”段落开始阅读。
获取你的初始参数设定参考“选项设定和基本调整”。
也可以参考RocksDB的FAQ。
同时为RocksDB高级用户提供了“RocksDB调整指南”。
开发指导-简介:https://github.com/facebook/rocksdb/wiki/RocksDB-Overview
开发指导-基本操作:https://github.com/facebook/rocksdb/wiki/Basic-Operations
开发指导-选项设定和基本调整:https://github.com/facebook/rocksdb/wiki/Setup-Options-and-Basic-Tuning
RocksDB-FAQ:https://github.com/facebook/rocksdb/wiki/RocksDB-FAQ
RocksDB-调整指南:https://github.com/facebook/rocksdb/wiki/RocksDB-Tuning-Guide
参见INSTALL.md中的说明来构建Rocksdb.

For a complete Table of Contents, see the sidebar to the right.
Most readers will want to start with the Overview and the Basic Operations section of the Developer’s Guide.
Get your initial options set-up following Setup Options and Basic Tuning.
Also check RocksDB FAQ.
There is also a RocksDB Tuning Guide for advanced RocksDB users.
Check INSTALL.md for instructions on how to build Rocksdb.

Releases 发布

RocksDB在github上进行发布。
对于java用户,Maven构建也会进行更新;
参见RocksDB发布策略:https://github.com/facebook/rocksdb/wiki/RocksDB-Release-Methodology

RocksDB releases are done in github.
For Java users, Maven Artifacts are also updated.
See RocksDB Release Methodology.

Contributing to RocksDB 为RocksDB提供贡献

欢迎提交Pull Request来为RocksDB代码库贡献代码。
参见RocksDB共享指南作为指引:https://github.com/facebook/rocksdb/wiki/RocksDB-Contribution-Guide

You are welcome to send pull requests to contribute to RocksDB code base!
Check RocksDB-Contribution-Guide for guideline.

Troubleshooting and asking for help 问题定位和寻求帮助

参照RocksDB的问题定位指南作为指引: https://github.com/facebook/rocksdb/wiki/RocksDB-Troubleshooting-Guide

Follow RocksDB Troubleshooting Guide for the guidelines.

Blog 博客

查看博客在http://rocksdb.org/blog/

Check out our blog at rocksdb.org/blog

Project History 项目历史

RocksDB的历史http://rocksdb.blogspot.com/2013/11/the-history-of-rocksdb.html
内幕信息:构建与开源RocksDB https://www.facebook.com/notes/10158791582997200/

The History of RocksDB
Under the Hood: Building and open-sourcing RocksDB.

Links 链接

Examples 例子https://github.com/facebook/rocksdb/tree/main/examples

Official Blog 官方博客http://rocksdb.org/blog/

Stack Overflow网站上RocksDB专题:https://stackoverflow.com/questions/tagged/rocksdb

Talks 演讲 https://github.com/facebook/rocksdb/wiki/Talks

Contact 联络簿

RocksDB Google Group
RocksDB谷歌群组 https://groups.google.com/forum/#!forum/rocksdb

RocksDB Facebook Group
RocksDB脸书群组 https://www.facebook.com/groups/rocksdb.dev/

RocksDB Github Issues
RocksDB在Github上问题 https://github.com/facebook/rocksdb/issues

Asking For Help
寻求帮助 https://github.com/facebook/rocksdb/wiki/RocksDB-Troubleshooting-Guide#asking-for-help

我们仅仅使用github issue来报告错误,并使用RocksDB谷歌群组或脸书群主来跟踪其它问题;
但对用户而言,是否是issue错误通常是不确定的,使用哪种方式由你自己尽量判断即可。

We use github issues only for bug reports, and use RocksDB’s Google Group or Facebook Group for other issues.
It is not always clear to users whether it is RocksDB bug or not. Pick one using your best judgement.

(Owed by: 春夜喜雨 http://blog.csdn.net/chunyexiyu)

 类似资料: