Go to file
Tomas Kolda cd4592c220 SST Partitioner interface that allows to split SST files (#6957)
Summary:
SST Partitioner interface that allows to split SST files during compactions.

It basically instruct compaction to create a new file when needed. When one is using well defined prefixes and prefixed way of defining tables it is good to define also partitioning so that promotion of some SST file does not cover huge key space on next level (worst case complete space).

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

Reviewed By: ajkr

Differential Revision: D22461239

fbshipit-source-id: 9ce07bba08b3ba89c2d45630520368f704d1316e
2020-07-24 13:44:49 -07:00
.circleci Exclude two tests in CircleCI TSAN tests (#7152) 2020-07-20 15:01:17 -07:00
.github/workflows Clean up some code related to file checksums (#6861) 2020-05-21 08:12:51 -07:00
buckifier Exclude c_test from buck build opt mode (#7093) 2020-07-07 11:28:22 -07:00
build_tools Add job specs for blackbox/whitebox stress tests (#7170) 2020-07-24 13:42:53 -07:00
cache Revert "Update googletest from 1.8.1 to 1.10.0 (#6808)" (#6923) 2020-06-03 15:55:03 -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 SST Partitioner interface that allows to split SST files (#6957) 2020-07-24 13:44:49 -07:00
db_stress_tool Add stress test for GetProperty (#7111) 2020-07-14 12:12:36 -07:00
docs remediation of S205607 2020-07-17 17:20:49 -07:00
env Add FileSystem wrapper classes for IO tracing. (#7002) 2020-07-13 16:36:55 -07:00
examples add WITH_EXAMPLES options to cmake and cleanups. (#6580) 2020-06-18 18:00:04 -07:00
file Add more tests for RandomAccessFileReader::MultiRead (#7157) 2020-07-23 13:50:00 -07:00
hdfs fix build with 'USE_HDFS' on windows (#6950) 2020-06-12 16:21:50 -07:00
include/rocksdb SST Partitioner interface that allows to split SST files (#6957) 2020-07-24 13:44:49 -07:00
java SST Partitioner interface that allows to split SST files (#6957) 2020-07-24 13:44:49 -07:00
logging Fix info log source file display length (#5824) 2020-04-08 20:18:08 -07:00
memory C++20 compatibility (#6697) 2020-04-20 13:24:25 -07:00
memtable More Makefile Cleanup (#7097) 2020-07-09 14:35:17 -07:00
monitoring Replace reinterpret_cast with static_cast_with_check (#7067) 2020-07-02 19:25:41 -07:00
options SST Partitioner interface that allows to split SST files (#6957) 2020-07-24 13:44:49 -07:00
port build fixes for GNU/kFreeBSD (#6992) 2020-06-18 09:51:28 -07:00
table Add hash of key/value checks when paranoid_file_checks=true (#7134) 2020-07-22 11:04:40 -07:00
test_util More Makefile Cleanup (#7097) 2020-07-09 14:35:17 -07:00
third-party Revert "Update googletest from 1.8.1 to 1.10.0 (#6808)" (#6923) 2020-06-03 15:55:03 -07:00
tools remediation of S205607 2020-07-17 17:20:49 -07:00
trace_replay Add FileSystem wrapper classes for IO tracing. (#7002) 2020-07-13 16:36:55 -07:00
util Fix typo in ThreadData comment (#7131) 2020-07-15 09:23:23 -07:00
utilities Sync blob files before closing them (#7160) 2020-07-22 17:25:20 -07:00
.clang-format
.gitignore Allow missing "unversioned" python, as in CentOS 8 (#6883) 2020-05-29 11:29:23 -07:00
.lgtm.yml
.travis.yml More Makefile clean-up (#7066) 2020-07-06 11:19:48 -07:00
.watchmanconfig Added .watchmanconfig file to rocksdb repo (#5593) 2019-07-19 15:00:33 -07:00
AUTHORS
CMakeLists.txt SST Partitioner interface that allows to split SST files (#6957) 2020-07-24 13:44:49 -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 SST Partitioner interface that allows to split SST files (#6957) 2020-07-24 13:44:49 -07:00
INSTALL.md
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 Add job specs for blackbox/whitebox stress tests (#7170) 2020-07-24 13:42:53 -07:00
README.md Add CircleCI gadget (#7028) 2020-06-25 10:30:33 -07:00
ROCKSDB_LITE.md
TARGETS SST Partitioner interface that allows to split SST files (#6957) 2020-07-24 13:44:49 -07:00
USERS.md Add YugabyteDB to USERS (#6786) 2020-05-06 10:28:29 -07: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 SST Partitioner interface that allows to split SST files (#6957) 2020-07-24 13:44:49 -07:00
thirdparty.inc Fix build jemalloc api (#5470) 2019-06-24 17:40:32 -07:00

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.