Find a file
Jay Zhuang f726d29a82 Allow penultimate level output for the last level only compaction (#10822)
Summary:
Allow the last level only compaction able to output result to penultimate level if the penultimate level is empty. Which will also block the other compaction output to the penultimate level.
(it includes the PR https://github.com/facebook/rocksdb/issues/10829)

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

Reviewed By: siying

Differential Revision: D40389180

Pulled By: jay-zhuang

fbshipit-source-id: 4e5dcdce307795b5e07b5dd1fa29dd75bb093bad
2022-10-22 08:57:38 -07:00
.circleci Improve / refactor anonymous mmap capabilities (#10810) 2022-10-17 17:10:16 -07:00
.github/workflows ci: add GitHub token permissions for workflow (#10549) 2022-10-04 12:10:30 -07:00
buckifier Enable BLACK for internal_repo_rocksdb (#10710) 2022-09-20 17:47:52 -07:00
build_tools Print stack traces on frozen tests in CI (#10828) 2022-10-18 00:35:35 -07:00
cache Fix HyperClockCache Rollback bug in #10801 (#10843) 2022-10-21 12:09:03 -07:00
cmake
coverage Enable BLACK for internal_repo_rocksdb (#10710) 2022-09-20 17:47:52 -07:00
db Allow penultimate level output for the last level only compaction (#10822) 2022-10-22 08:57:38 -07:00
db_stress_tool Enable preclude_last_level_data_seconds in stress test (#10824) 2022-10-16 09:28:43 -07:00
docs Bump nokogiri from 1.13.6 to 1.13.9 in /docs (#10842) 2022-10-20 22:13:41 -07:00
env Print stack traces on frozen tests in CI (#10828) 2022-10-18 00:35:35 -07:00
examples Add a simple example of backup and restore (#10054) 2022-06-03 23:25:31 -07:00
file Print stack traces on frozen tests in CI (#10828) 2022-10-18 00:35:35 -07:00
fuzz Add some missing headers (#10519) 2022-08-11 12:45:50 -07:00
include/rocksdb Use kXXH3 as default checksum (CPU efficiency) (#10778) 2022-10-21 18:09:12 -07:00
java Use grep instead of obsolete egrep (#10701) 2022-09-22 16:58:21 -07:00
logging Print stack traces on frozen tests in CI (#10828) 2022-10-18 00:35:35 -07:00
memory Print stack traces on frozen tests in CI (#10828) 2022-10-18 00:35:35 -07:00
memtable Print stack traces on frozen tests in CI (#10828) 2022-10-18 00:35:35 -07:00
microbench Avoid allocations/copies for large GetMergeOperands() results (#10458) 2022-08-04 00:42:13 -07:00
monitoring Print stack traces on frozen tests in CI (#10828) 2022-10-18 00:35:35 -07:00
options Ignore max_compaction_bytes for compaction input that are within output key-range (#10835) 2022-10-21 10:22:41 -07:00
plugin
port Refactor ShardedCache for more sharing, static polymorphism (#10801) 2022-10-18 22:06:57 -07:00
table Use kXXH3 as default checksum (CPU efficiency) (#10778) 2022-10-21 18:09:12 -07:00
test_util Print stack traces on frozen tests in CI (#10828) 2022-10-18 00:35:35 -07:00
third-party
tools Use kXXH3 as default checksum (CPU efficiency) (#10778) 2022-10-21 18:09:12 -07:00
trace_replay Refactor block cache tracing APIs (#10811) 2022-10-21 12:15:35 -07:00
util Make UserComparatorWrapper not Customizable (#10837) 2022-10-21 12:27:50 -07:00
utilities Refactor block cache tracing APIs (#10811) 2022-10-21 12:15:35 -07:00
.clang-format
.gitignore Git ignore .clangd/ (#10817) 2022-10-17 08:33:58 -07:00
.lgtm.yml
.watchmanconfig
AUTHORS
CMakeLists.txt Improve / refactor anonymous mmap capabilities (#10810) 2022-10-17 17:10:16 -07:00
CODE_OF_CONDUCT.md
common.mk
CONTRIBUTING.md
COPYING
crash_test.mk minor cleanups to db_crashtest.py (#10654) 2022-09-08 17:39:22 -07:00
DEFAULT_OPTIONS_HISTORY.md
DUMP_FORMAT.md
HISTORY.md Allow penultimate level output for the last level only compaction (#10822) 2022-10-22 08:57:38 -07:00
INSTALL.md
issue_template.md
LANGUAGE-BINDINGS.md Add grocksdb in Go language bindings (#10498) 2022-08-23 15:02:10 -07:00
LICENSE.Apache
LICENSE.leveldb
Makefile Print stack traces on frozen tests in CI (#10828) 2022-10-18 00:35:35 -07:00
PLUGINS.md Add pmem-rocksdb-plugin link in PLUGINs.md (#9934) 2022-05-12 22:02:28 -07:00
README.md Remove Travis CI (#10407) 2022-07-22 20:16:45 -07:00
rocksdb.pc.in build: fix pkg-config file generation (#9953) 2022-05-30 12:46:40 -07:00
ROCKSDB_LITE.md
src.mk Improve / refactor anonymous mmap capabilities (#10810) 2022-10-17 17:10:16 -07:00
TARGETS Improve / refactor anonymous mmap capabilities (#10810) 2022-10-17 17:10:16 -07:00
thirdparty.inc
USERS.md
Vagrantfile
WINDOWS_PORT.md

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

CircleCI 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/main/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.

Questions and discussions are welcome on the RocksDB Developers Public Facebook group and email list on Google Groups.

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.