Go to file
Peter Dillinger 95f6add746 Revert Ribbon starting level support from #8198 (#8212)
Summary:
This partially reverts commit 10196d7edc.

The problem with this change is because of important filter use cases:
FIFO compaction and SST writer. FIFO "compaction" always uses level 0 so
would only use Ribbon filters if specifically including level 0 for the
Ribbon filter policy. SST writer sets level_at_creation=-1 to indicate
unknown level, and this would be treated the same as level 0 unless
fixed.

We are keeping the part about committing to permanent schema, which is
only changes to API comments and HISTORY.md.

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

Test Plan: CI

Reviewed By: jay-zhuang

Differential Revision: D27896468

Pulled By: pdillinger

fbshipit-source-id: 50a775f7cba5d64fb729d9b982e355864020596e
2021-04-20 19:46:40 -07:00
.circleci Fix unittest no space issue (#8204) 2021-04-20 08:42:28 -07:00
.github/workflows Update clang-format-diff.py path (#7944) 2021-02-09 12:49:38 -08:00
buckifier Make tests "parallel" and "passing ASC" by default (#8146) 2021-04-04 20:10:11 -07:00
build_tools Fix crash test with backup as read-only DB (#8161) 2021-04-06 23:31:51 -07:00
cache Fix some typos in comments (#8066) 2021-03-25 21:18:08 -07:00
cmake Add `find_dependency()` in cmake config file. (#6791) 2020-05-12 21:18:29 -07:00
coverage Find the correct gcov (#6904) 2020-06-01 16:33:05 -07:00
db Fix seqno in ingested file boundary key metadata (#8209) 2021-04-20 14:00:21 -07:00
db_stress_tool Revert Ribbon starting level support from #8198 (#8212) 2021-04-20 19:46:40 -07:00
docs Add Blog Post "(Call For Contribution) Make Universal Compaction More Incremental" (#8182) 2021-04-13 13:18:47 -07:00
env Fix unittest no space issue (#8204) 2021-04-20 08:42:28 -07:00
examples make:Fix c header prototypes (#7994) 2021-03-09 20:44:23 -08:00
file Handle rename() failure in non-local FS (#8192) 2021-04-19 18:11:13 -07:00
fuzz Remove Legacy and Custom FileWrapper classes from header files (#7851) 2021-01-28 22:10:32 -08:00
hdfs fix build with 'USE_HDFS' on windows (#6950) 2020-06-12 16:21:50 -07:00
include/rocksdb Revert Ribbon starting level support from #8198 (#8212) 2021-04-20 19:46:40 -07:00
java Handle rename() failure in non-local FS (#8192) 2021-04-19 18:11:13 -07:00
logging Use SystemClock* instead of std::shared_ptr<SystemClock> in lower level routines (#8033) 2021-03-15 04:34:11 -07:00
memory Use thread-safe `strerror_r()` to get error message (#8087) 2021-03-24 23:07:27 -07:00
memtable Use SystemClock* instead of std::shared_ptr<SystemClock> in lower level routines (#8033) 2021-03-15 04:34:11 -07:00
monitoring Disable IOStatsContext/PerfContext if no thread local (#8117) 2021-04-13 07:56:59 -07:00
options Revert Ribbon starting level support from #8198 (#8212) 2021-04-20 19:46:40 -07:00
plugin Makefile support to statically link external plugin code (#7918) 2021-02-10 08:35:34 -08:00
port Fix Windows strcmp for Unicode (#8190) 2021-04-16 12:11:16 -07:00
table Revert Ribbon starting level support from #8198 (#8212) 2021-04-20 19:46:40 -07:00
test_util Unittest uses unique test db name (#8124) 2021-03-30 16:51:26 -07:00
third-party Fix a compilation error in CircleCI vs2019 CXX20 (#8090) 2021-03-23 10:28:04 -07:00
tools Revert Ribbon starting level support from #8198 (#8212) 2021-04-20 19:46:40 -07:00
trace_replay Add request_id in IODebugContext. (#8045) 2021-04-01 13:14:51 -07:00
util Revert Ribbon starting level support from #8198 (#8212) 2021-04-20 19:46:40 -07:00
utilities Cleanup include (#8208) 2021-04-20 14:57:27 -07:00
.clang-format
.gitignore gitignore cmake-build-* for CLion integration (#7933) 2021-02-19 13:43:15 -08:00
.lgtm.yml
.travis.yml Move arm build from travis to circleci (#8203) 2021-04-19 20:07:02 -07:00
.watchmanconfig Added .watchmanconfig file to rocksdb repo (#5593) 2019-07-19 15:00:33 -07:00
AUTHORS
CMakeLists.txt Disable IOStatsContext/PerfContext if no thread local (#8117) 2021-04-13 07:56:59 -07:00
CODE_OF_CONDUCT.md Adopt Contributor Covenant 2019-08-29 23:21:01 -07:00
CONTRIBUTING.md
COPYING
DEFAULT_OPTIONS_HISTORY.md
DUMP_FORMAT.md
HISTORY.md Revert Ribbon starting level support from #8198 (#8212) 2021-04-20 19:46:40 -07:00
INSTALL.md Update installation instructions (#8158) 2021-04-06 16:02:04 -07:00
LANGUAGE-BINDINGS.md Add RestoreDBFromLatestBackup to C API, add new C# package (#7092) 2020-07-08 11:56:41 -07:00
LICENSE.Apache
LICENSE.leveldb
Makefile Fix Makefile when multiple targets are invoked (#8195) 2021-04-16 08:34:59 -07:00
PLUGINS.md Makefile support to statically link external plugin code (#7918) 2021-02-10 08:35:34 -08:00
README.md Fix the CI badge for ppc64le Jenkins (#7561) 2020-10-16 09:00:56 -07:00
ROCKSDB_LITE.md
TARGETS Add util/crc32c_arm64.cc to TARGETS (#8168) 2021-04-12 10:57:56 -07:00
USERS.md Add Apache Doris to USERS (#7865) 2021-01-19 15:31:56 -08:00
Vagrantfile
WINDOWS_PORT.md
appveyor.yml Remove 2019 from appveyor (#7038) 2020-06-29 14:31:41 -07:00
defs.bzl Make testpilot recognize that these tests have coverage instrumentation 2020-03-20 11:23:23 -07:00
issue_template.md Add Google Group to Issue Template 2020-01-28 14:40:37 -08:00
src.mk Add util/crc32c_arm64.cc to TARGETS (#8168) 2021-04-12 10:57:56 -07:00
thirdparty.inc

README.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.