Skip to content
A library that provides an embeddable, persistent key-value store for fast storage.
C++ Java Python Perl C Shell Other
Branch: master
Clone or download

Latest commit

pdillinger and facebook-github-bot Allow missing "unversioned" python, as in CentOS 8 (#6883)
Summary:
RocksDB Makefile was assuming existence of 'python' command,
which is not present in CentOS 8. We avoid using 'python' if 'python3' is available.

Also added fancy logic to format-diff.sh to make clang-format-diff.py for Python2 work even with Python3 only (as some CentOS 8 FB machines come equipped)

Also, now use just 'python3' for PYTHON if not found so that an informative
"command not found" error will result rather than something weird.
Pull Request resolved: #6883

Test Plan: manually tried some variants, 'make check' on a fresh CentOS 8 machine without 'python' executable or Python2 but with clang-format-diff.py for Python2.

Reviewed By: gg814

Differential Revision: D21767029

Pulled By: pdillinger

fbshipit-source-id: 54761b376b140a3922407bdc462f3572f461d0e9
Latest commit 0c56fc4 May 29, 2020

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci pin image version in circle CI builds (#6876) May 24, 2020
.github/workflows Clean up some code related to file checksums (#6861) May 21, 2020
buckifier Allow missing "unversioned" python, as in CentOS 8 (#6883) May 29, 2020
build_tools Allow missing "unversioned" python, as in CentOS 8 (#6883) May 29, 2020
cache Add Struct Type to OptionsTypeInfo (#6425) May 21, 2020
cmake Add `find_dependency()` in cmake config file. (#6791) May 13, 2020
coverage Update a few scripts to be python3 compatible (#6525) Mar 25, 2020
db avoid `IterKey::UpdateInternalKey()` in `BlockIter` (#6843) May 28, 2020
db_stress_tool fix transaction rollback in db_stress TestMultiGet (#6873) May 24, 2020
docs Log warning for high bits/key in legacy Bloom filter (#6312) Jan 18, 2020
env Status check enforcement for io_posix_test and options_settable_test (#… May 20, 2020
examples Add missing my_pid to fprintf in multi_process_example (#6731) May 9, 2020
file Misc things for ASSERT_STATUS_CHECKED, also gcc 4.8.5 (#6871) May 23, 2020
hdfs prototype status check enforcement (#6798) May 8, 2020
include/rocksdb Allow MultiGet users to limit cumulative value size (#6826) May 27, 2020
java Add newer WBWI::NewIteratorWithBase functions to RocksJava (#6872) May 27, 2020
logging Fix info log source file display length (#5824) Apr 9, 2020
memory C++20 compatibility (#6697) Apr 20, 2020
memtable C++20 compatibility (#6697) Apr 20, 2020
monitoring Fix FilterBench when RTTI=0 (#6732) Apr 29, 2020
options Allow MultiGet users to limit cumulative value size (#6826) May 27, 2020
port C++20 compatibility (#6697) Apr 20, 2020
table avoid `IterKey::UpdateInternalKey()` in `BlockIter` (#6843) May 28, 2020
test_util Enable IO Uring in MultiGet in direct IO mode (#6815) May 15, 2020
third-party Misc things for ASSERT_STATUS_CHECKED, also gcc 4.8.5 (#6871) May 23, 2020
tools Allow missing "unversioned" python, as in CentOS 8 (#6883) May 29, 2020
trace_replay Fix multiple CF replay failure in db_bench replay (#6787) May 1, 2020
util Change autovector to have a reserved size in LITE mode (#6868) May 21, 2020
utilities Fix warning -Wextra-semi. NFC. (#6869) May 22, 2020
.clang-format A script that automatically reformat affected lines Jan 14, 2014
.gitignore Allow missing "unversioned" python, as in CentOS 8 (#6883) May 29, 2020
.lgtm.yml Create lgtm.yml for LGTM.com C/C++ analysis (#4058) Jun 26, 2018
.travis.yml Misc things for ASSERT_STATUS_CHECKED, also gcc 4.8.5 (#6871) May 23, 2020
.watchmanconfig Added .watchmanconfig file to rocksdb repo (#5593) Jul 19, 2019
AUTHORS Update RocksDB Authors File Oct 18, 2017
CMakeLists.txt cmake: link env_librados_test against rados (#6855) May 26, 2020
CODE_OF_CONDUCT.md Adopt Contributor Covenant Aug 30, 2019
CONTRIBUTING.md Add Code of Conduct Dec 6, 2017
COPYING Add GPLv2 as an alternative license. Apr 28, 2017
DEFAULT_OPTIONS_HISTORY.md options.delayed_write_rate use the rate of rate_limiter by default. May 24, 2017
DUMP_FORMAT.md First version of rocksdb_dump and rocksdb_undump. Jun 19, 2015
HISTORY.md avoid `IterKey::UpdateInternalKey()` in `BlockIter` (#6843) May 28, 2020
INSTALL.md Update the version of the dependencies used by the RocksJava static b… Dec 19, 2018
LANGUAGE-BINDINGS.md LANGUAGE-BINDINGS.md: mention python-rocksdb Mar 20, 2019
LICENSE.Apache Change RocksDB License Jul 15, 2017
LICENSE.leveldb Add back the LevelDB license file Jul 17, 2017
Makefile Allow missing "unversioned" python, as in CentOS 8 (#6883) May 29, 2020
README.md Add Slack forum to README (#6773) Apr 30, 2020
ROCKSDB_LITE.md Fix some typos in comments and docs. Mar 8, 2018
TARGETS Allow missing "unversioned" python, as in CentOS 8 (#6883) May 29, 2020
USERS.md Add YugabyteDB to USERS (#6786) May 6, 2020
Vagrantfile Adding CentOS 7 Vagrantfile & build script Feb 26, 2018
WINDOWS_PORT.md #5145 , rename port/dirent.h to port/port_dirent.h to avoid compile e… Apr 4, 2019
appveyor.yml C++20 compatibility (#6697) Apr 20, 2020
defs.bzl Make testpilot recognize that these tests have coverage instrumentation Mar 20, 2020
issue_template.md Add Google Group to Issue Template Jan 28, 2020
src.mk Use in-repo gtest in buck build (#6858) May 20, 2020
thirdparty.inc Fix build jemalloc api (#5470) Jun 25, 2019

README.md

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

Linux/Mac Build Status Windows Build status PPC64le Build Status

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/master/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.

Design discussions are conducted in https://www.facebook.com/groups/rocksdb.dev/ and https://rocksdb.slack.com/

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.

You can’t perform that action at this time.