Find a file
Gang Liao 95ef007adc Support using secondary cache with the blob cache (#10349)
Summary:
RocksDB supports a two-level cache hierarchy (see https://rocksdb.org/blog/2021/05/27/rocksdb-secondary-cache.html), where items evicted from the primary cache can be spilled over to the secondary cache, or items from the secondary cache can be promoted to the primary one. We have a CacheLib-based non-volatile secondary cache implementation that can be used to improve read latencies and reduce the amount of network bandwidth when using distributed file systems. In addition, we have recently implemented a compressed secondary cache that can be used as a replacement for the OS page cache when e.g. direct I/O is used. The goals of this task are to add support for using a secondary cache with the blob cache and to measure the potential performance gains using `db_bench`.

This task is a part of https://github.com/facebook/rocksdb/issues/10156

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

Reviewed By: ltamasi

Differential Revision: D37896773

Pulled By: gangliao

fbshipit-source-id: 7804619ce4a44b73d9e11ad606640f9385969c84
2022-07-16 03:54:37 -07:00
.circleci Adapt benchmark result script to new fields. (#10120) 2022-06-22 09:26:13 -07:00
.github/workflows
buckifier Use optimized folly DistributedMutex in LRUCache when available (#10179) 2022-06-17 13:08:45 -07:00
build_tools Adapt benchmark result script to new fields. (#10120) 2022-06-22 09:26:13 -07:00
cache Support using secondary cache with the blob cache (#10349) 2022-07-16 03:54:37 -07:00
cmake
coverage
db Support using secondary cache with the blob cache (#10349) 2022-07-16 03:54:37 -07:00
db_stress_tool Revert NewClockCache signature (#10358) 2022-07-13 17:43:39 -07:00
docs
env Support reservation in thread pool (#10278) 2022-07-08 19:48:09 -07:00
examples Add a simple example of backup and restore (#10054) 2022-06-03 23:25:31 -07:00
file Provide support for direct_reads with async_io (#10197) 2022-07-06 11:42:59 -07:00
fuzz
include/rocksdb Add helper function to get debug type name (#10243) 2022-07-15 14:42:00 -07:00
java Revert NewClockCache signature (#10358) 2022-07-13 17:43:39 -07:00
logging Fix bug in Logger creation if dbname and db_log_dir are on different filesystem (#10292) 2022-06-30 19:04:25 -07:00
memory
memtable
microbench Fix overflow in ribbon_bench after #10184 (#10195) 2022-06-17 12:53:57 -07:00
monitoring Add seqno to time mapping (#10338) 2022-07-14 21:49:34 -07:00
options Add seqno to time mapping (#10338) 2022-07-14 21:49:34 -07:00
plugin
port Support reservation in thread pool (#10278) 2022-07-08 19:48:09 -07:00
table Add seqno to time mapping (#10338) 2022-07-14 21:49:34 -07:00
test_util Add seqno to time mapping (#10338) 2022-07-14 21:49:34 -07:00
third-party
tools Temporarily return a LRUCache from NewClockCache (#10351) 2022-07-13 08:45:44 -07:00
trace_replay
util Add seqno to time mapping (#10338) 2022-07-14 21:49:34 -07:00
utilities Add helper function to get debug type name (#10243) 2022-07-15 14:42:00 -07:00
.clang-format
.gitignore Snapshots with user-specified timestamps (#9879) 2022-06-10 16:07:03 -07:00
.lgtm.yml
.travis.yml
.watchmanconfig
AUTHORS
CMakeLists.txt Add seqno to time mapping (#10338) 2022-07-14 21:49:34 -07:00
CODE_OF_CONDUCT.md
common.mk
CONTRIBUTING.md
COPYING
crash_test.mk
DEFAULT_OPTIONS_HISTORY.md
DUMP_FORMAT.md
HISTORY.md Support using secondary cache with the blob cache (#10349) 2022-07-16 03:54:37 -07:00
INSTALL.md
issue_template.md
LANGUAGE-BINDINGS.md
LICENSE.Apache
LICENSE.leveldb
Makefile Add seqno to time mapping (#10338) 2022-07-14 21:49:34 -07:00
PLUGINS.md
README.md
rocksdb.pc.in build: fix pkg-config file generation (#9953) 2022-05-30 12:46:40 -07:00
ROCKSDB_LITE.md
src.mk Add seqno to time mapping (#10338) 2022-07-14 21:49:34 -07:00
TARGETS Add seqno to time mapping (#10338) 2022-07-14 21:49:34 -07:00
thirdparty.inc
USERS.md
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/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.