Go to file
Levi Tamasi a3b8c76d8e Add missing check before calling PurgeObsoleteFiles in EnableFileDeletions (#5448)
Summary:
Calling PurgeObsoleteFiles with a JobContext for which HaveSomethingToDelete
is false is a precondition violation. This would trigger an assertion in debug builds;
however, in release builds with assertions disabled, this can result in the
pending_purge_obsolete_files_ counter in DBImpl underflowing, which in turn can lead
to the process hanging during database close.
Pull Request resolved: https://github.com/facebook/rocksdb/pull/5448

Differential Revision: D15792569

Pulled By: ltamasi

fbshipit-source-id: 82d92c9b4f6a9efcdc69dbb3d5a52a1ae2dd2472
2019-06-13 14:43:13 -07:00
buckifier
build_tools Support rocksdbjava aarch64 build and test (#5258) 2019-06-13 11:48:10 -07:00
cache
cmake
coverage
db Add missing check before calling PurgeObsoleteFiles in EnableFileDeletions (#5448) 2019-06-13 14:43:13 -07:00
docs
env Dynamic test whether sync_file_range returns ENOSYS (#5416) 2019-06-13 13:56:10 -07:00
examples
file
hdfs
include/rocksdb
java Support rocksdbjava aarch64 build and test (#5258) 2019-06-13 11:48:10 -07:00
logging
memory
memtable
monitoring
options
port
table Revert "Reduce iterator key comparison for upper/lower bound check (#5111)" (#5440) 2019-06-11 16:23:41 -07:00
test_util
third-party/gtest-1.7.0/fused-src/gtest
tools Disable pipeline writes in stress test (#5445) 2019-06-12 11:12:36 -07:00
trace_replay First commit for block cache trace analyzer (#5425) 2019-06-11 12:22:44 -07:00
util
utilities Fix appveyor compliant about passing const to thread (#5447) 2019-06-12 15:06:22 -07:00
.clang-format
.gitignore
.lgtm.yml
.travis.yml
AUTHORS
CMakeLists.txt First commit for block cache trace analyzer (#5425) 2019-06-11 12:22:44 -07:00
CODE_OF_CONDUCT.md
CONTRIBUTING.md
COPYING
DEFAULT_OPTIONS_HISTORY.md
DUMP_FORMAT.md
HISTORY.md Revert "Reduce iterator key comparison for upper/lower bound check (#5111)" (#5440) 2019-06-11 16:23:41 -07:00
INSTALL.md
LANGUAGE-BINDINGS.md
LICENSE.Apache
LICENSE.leveldb
Makefile Support rocksdbjava aarch64 build and test (#5258) 2019-06-13 11:48:10 -07:00
README.md
ROCKSDB_LITE.md
TARGETS
USERS.md Add Alluxio to USERS.md (#5434) 2019-06-13 12:25:26 -07:00
Vagrantfile
WINDOWS_PORT.md
appveyor.yml
defs.bzl
issue_template.md
src.mk First commit for block cache trace analyzer (#5425) 2019-06-11 12:22:44 -07:00
thirdparty.inc

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 specially 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/

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.