Find a file
Levi Tamasi 0288bdbc53 Add the integrated BlobDB to the stress/crash tests (#7900)
Summary:
The patch adds support for the options related to the new BlobDB implementation
to `db_stress`, including support for dynamically adjusting them using `SetOptions`
when `set_options_one_in` and a new flag `allow_setting_blob_options_dynamically`
are specified. (The latter is used to prevent the options from being enabled when
incompatible features are in use.)

The patch also updates the `db_stress` help messages of the existing stacked BlobDB
related options to clarify that they pertain to the old implementation. In addition, it
adds the new BlobDB to the crash test script. In order to prevent a combinatorial explosion
of jobs and still perform whitebox/blackbox testing (including under ASAN/TSAN/UBSAN),
and to also test BlobDB in conjunction with atomic flush and transactions, the script sets
the BlobDB options in 10% of normal/`cf_consistency`/`txn` crash test runs.

Pull Request resolved: https://github.com/facebook/rocksdb/pull/7900

Test Plan: Ran `make check` and `db_stress`/`db_crashtest.py` with various options.

Reviewed By: jay-zhuang

Differential Revision: D26094913

Pulled By: ltamasi

fbshipit-source-id: c2ef3391a05e43a9687f24e297df05f4a5584814
2021-02-02 11:41:18 -08:00
.circleci Small improvements to CircleCI Windows jobs (#7852) 2021-01-11 13:32:07 -08:00
.github/workflows
buckifier Accurate re-generate command in TARGETS file (#7902) 2021-01-27 16:21:30 -08:00
build_tools Skip format checks for sandcastle build (#7911) 2021-02-01 09:17:54 -08:00
cache Add a SystemClock class to capture the time functions of an Env (#7858) 2021-01-25 22:09:11 -08:00
cmake
coverage
db Fix a SingleDelete related optimization for blob indexes (#7904) 2021-01-29 12:41:25 -08:00
db_stress_tool Add the integrated BlobDB to the stress/crash tests (#7900) 2021-02-02 11:41:18 -08:00
docs Update github-pages and dependencies (#7850) 2021-01-11 12:48:01 -08:00
env Remove Legacy and Custom FileWrapper classes from header files (#7851) 2021-01-28 22:10:32 -08:00
examples
file Remove Legacy and Custom FileWrapper classes from header files (#7851) 2021-01-28 22:10:32 -08:00
fuzz Remove Legacy and Custom FileWrapper classes from header files (#7851) 2021-01-28 22:10:32 -08:00
hdfs
include/rocksdb Integrity protection for live updates to WriteBatch (#7748) 2021-01-29 12:18:58 -08:00
java fix java sample typo and replace deprecated code with latest (#7906) 2021-02-01 14:45:34 -08:00
logging Add a SystemClock class to capture the time functions of an Env (#7858) 2021-01-25 22:09:11 -08:00
memory
memtable Add a SystemClock class to capture the time functions of an Env (#7858) 2021-01-25 22:09:11 -08:00
monitoring Add a SystemClock class to capture the time functions of an Env (#7858) 2021-01-25 22:09:11 -08:00
options
port Remove Legacy and Custom FileWrapper classes from header files (#7851) 2021-01-28 22:10:32 -08:00
table Integrity protection for live updates to WriteBatch (#7748) 2021-01-29 12:18:58 -08:00
test_util Add a SystemClock class to capture the time functions of an Env (#7858) 2021-01-25 22:09:11 -08:00
third-party
tools Add the integrated BlobDB to the stress/crash tests (#7900) 2021-02-02 11:41:18 -08:00
trace_replay Add a SystemClock class to capture the time functions of an Env (#7858) 2021-01-25 22:09:11 -08:00
util Integrity protection for live updates to WriteBatch (#7748) 2021-01-29 12:18:58 -08:00
utilities Remove Legacy and Custom FileWrapper classes from header files (#7851) 2021-01-28 22:10:32 -08:00
.clang-format
.gitignore
.lgtm.yml
.travis.yml Cleanup Travis CI config (#7848) 2021-01-11 10:30:28 -08:00
.watchmanconfig
appveyor.yml
AUTHORS
CMakeLists.txt Fix build_version.cc generation error if GIT not found (#7916) 2021-02-01 21:05:54 -08:00
CODE_OF_CONDUCT.md
CONTRIBUTING.md
COPYING
DEFAULT_OPTIONS_HISTORY.md
defs.bzl
DUMP_FORMAT.md
HISTORY.md Integrity protection for live updates to WriteBatch (#7748) 2021-01-29 12:18:58 -08:00
INSTALL.md
issue_template.md
LANGUAGE-BINDINGS.md
LICENSE.Apache
LICENSE.leveldb
Makefile Fix build_version.cc generation error if GIT not found (#7916) 2021-02-01 21:05:54 -08:00
README.md
ROCKSDB_LITE.md
src.mk Integrity protection for live updates to WriteBatch (#7748) 2021-01-29 12:18:58 -08:00
TARGETS Integrity protection for live updates to WriteBatch (#7748) 2021-01-29 12:18:58 -08:00
thirdparty.inc
USERS.md Add Apache Doris to USERS (#7865) 2021-01-19 15:31:56 -08:00
Vagrantfile
WINDOWS_PORT.md

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

CircleCI Status TravisCI Status Appveyor 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.