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 — это встраиваемое постоянное key-value хранилище для быстрой работы с данными, созданное в виде C++-библиотеки командой Database Engineering из Facebook.
Это сервер баз данных, который я разворачиваю, или библиотека, которую я подключаю к своему приложению?Это библиотека, а не сервер: вы встраиваете её прямо в своё приложение. В README сказано, что это основной строительный блок, из которого можно собрать быстрое key-value хранилище-сервер.
Как начать использовать RocksDB в своём проекте?Начните с примера использования, ссылка на который есть в README, а затем обратитесь к GitHub wiki — там подробно описаны сборка и использование. Поскольку это C++-библиотека, вы компилируете её и линкуете со своим приложением.
Какие части API можно смело использовать в своём коде?Только заголовки в include/ — это публичный интерфейс. Всё остальное внутреннее и может измениться без предупреждения между версиями.
Сколько данных может вместить одна база RocksDB?Несколько терабайт в одной базе. Именно многопоточная компакция делает работу с данными такого объёма практичной.
Для какого хранения она создана — SSD, жёстких дисков или памяти?Для flash-накопителей и RAM: README так и называется — 'A Persistent Key-Value Store for Flash and RAM Storage', и там сказано, что библиотека особенно хорошо подходит для хранения данных на flash-накопителях.
Что можно настроить в балансе между скоростью записи, чтения и занимаемым местом?Архитектура LSM (Log-Structured-Merge-Database) даёт гибкий выбор между Write-Amplification-Factor (WAF), Read-Amplification-Factor (RAF) и Space-Amplification-Factor (SAF) — можно сместить баланс в сторону скорости записи, скорости чтения или экономии места на диске.
Как она связана с LevelDB?Она построена на более ранних наработках по LevelDB, которые сделали Санжай Гемават и Джефф Дин, а сейчас её разрабатывает и поддерживает команда Database Engineering из Facebook.
Creator
facebook
Size
246.1 MB
Stars
32.2K
Age
13y
Commits · 90 Days