Go to file
anand76 2553d1efa1 Revert "Avoid dynamic memory allocation on read path (#10453)" (#10541)
Summary:
This reverts commit 0d885e80d4. The original commit causes a ASAN stack-use-after-return failure due to the `CreateCallback` being allocated on stack and then used in another thread when a secondary cache object is promoted to the primary cache.

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

Reviewed By: gitbw95

Differential Revision: D38850039

Pulled By: anand1976

fbshipit-source-id: 810c592b7de2523693f5bb267159b23b0ee9132c
2022-08-19 11:02:54 -07:00
.circleci Migrate to docker for CI run (#10496) 2022-08-10 17:34:38 -07:00
.github/workflows
buckifier
build_tools Migrate to docker for CI run (#10496) 2022-08-10 17:34:38 -07:00
cache Add a blob-specific cache priority (#10461) 2022-08-12 17:59:06 -07:00
cmake
coverage
db Prevent a case of WriteBufferManager flush thrashing (#6364) 2022-08-17 15:53:40 -07:00
db_stress_tool Add memtable per key-value checksum (#10281) 2022-08-12 13:51:32 -07:00
docs
env Migrate to docker for CI run (#10496) 2022-08-10 17:34:38 -07:00
examples
file
fuzz Add some missing headers (#10519) 2022-08-11 12:45:50 -07:00
include/rocksdb Prevent a case of WriteBufferManager flush thrashing (#6364) 2022-08-17 15:53:40 -07:00
java Add a blob-specific cache priority (#10461) 2022-08-12 17:59:06 -07:00
logging
memory Add a blob-specific cache priority (#10461) 2022-08-12 17:59:06 -07:00
memtable Migrate to docker for CI run (#10496) 2022-08-10 17:34:38 -07:00
microbench
monitoring
options Add memtable per key-value checksum (#10281) 2022-08-12 13:51:32 -07:00
plugin
port
table Revert "Avoid dynamic memory allocation on read path (#10453)" (#10541) 2022-08-19 11:02:54 -07:00
test_util
third-party
tools Fix the memory leak in db_stress tests that are caused by `FaultInjectionSecondaryCache` and add `CompressedSecondaryCache` into stress tests. (#10523) 2022-08-18 21:53:27 -07:00
trace_replay
util Derive cache keys from SST unique IDs (#10394) 2022-08-12 13:49:49 -07:00
utilities Fix the memory leak in db_stress tests that are caused by `FaultInjectionSecondaryCache` and add `CompressedSecondaryCache` into stress tests. (#10523) 2022-08-18 21:53:27 -07:00
.clang-format
.gitignore
.lgtm.yml
.watchmanconfig
AUTHORS
CMakeLists.txt
CODE_OF_CONDUCT.md
CONTRIBUTING.md
COPYING
DEFAULT_OPTIONS_HISTORY.md
DUMP_FORMAT.md
HISTORY.md Revert "Avoid dynamic memory allocation on read path (#10453)" (#10541) 2022-08-19 11:02:54 -07:00
INSTALL.md
LANGUAGE-BINDINGS.md
LICENSE.Apache
LICENSE.leveldb
Makefile
PLUGINS.md
README.md
ROCKSDB_LITE.md
TARGETS
USERS.md
Vagrantfile
WINDOWS_PORT.md
common.mk
crash_test.mk
issue_template.md
rocksdb.pc.in
src.mk
thirdparty.inc

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