Find a file
Peter Dillinger f321e8fc98 Don't attempt to use SecondaryCache on block_cache_compressed (#10944)
Summary:
Compressed block cache depends on reading the block compression marker beyond the payload block size. Only the payload bytes were being saved and loaded from SecondaryCache -> boom!

This removes some unnecessary code attempting to combine these two competing features. Note that BlockContents was previously used for block-based filter in block cache, but that support has been removed.

Also marking block_cache_compressed as deprecated in this commit as we expect it to be replaced with SecondaryCache.

This problem was discovered during refactoring but didn't want to combine bug fix with that refactoring.

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

Test Plan: test added that fails on base revision (at least with ASAN)

Reviewed By: akankshamahajan15

Differential Revision: D41205578

Pulled By: pdillinger

fbshipit-source-id: 1b29d36c7a6552355ac6511fcdc67038ef4af29f
2022-11-11 17:35:53 -08:00
.circleci
.github/workflows
buckifier
build_tools
cache Don't attempt to use SecondaryCache on block_cache_compressed (#10944) 2022-11-11 17:35:53 -08:00
cmake
coverage
db Support Merge for wide-column entities in the compaction logic (#10946) 2022-11-11 16:32:32 -08:00
db_stress_tool
docs Blog post for Aligning Compaction Output File Boundaries (#10917) 2022-11-07 19:28:05 -08:00
env Added placeholders for MADV defines (#10881) 2022-11-02 14:42:42 -07:00
examples Add rocksdb_backup_restore_example to examples/.gitignore (#10825) 2022-11-02 15:02:09 -07:00
file Fix async_io regression in scans (#10939) 2022-11-11 13:34:49 -08:00
fuzz
include/rocksdb Don't attempt to use SecondaryCache on block_cache_compressed (#10944) 2022-11-11 17:35:53 -08:00
java Improve musl libc detection and provide an option for the user to override (#10889) 2022-11-02 14:42:23 -07:00
logging
memory Run clang format against files under example/, memory/ and memtable/ folders (#10893) 2022-10-28 13:16:50 -07:00
memtable Run clang format against files under example/, memory/ and memtable/ folders (#10893) 2022-10-28 13:16:50 -07:00
microbench
monitoring
options
plugin
port
table Don't attempt to use SecondaryCache on block_cache_compressed (#10944) 2022-11-11 17:35:53 -08:00
test_util
third-party
tools Add multireadwhilewriting benchmark to db_bench (#10919) 2022-11-04 11:01:33 -07:00
trace_replay
util Fix use of crc32c 3way on portable builds using MSVC (#10667) 2022-11-08 11:56:55 -08:00
utilities Fix a bug where GetContext does not update READ_NUM_MERGE_OPERANDS (#10925) 2022-11-07 15:42:10 -08:00
.clang-format
.gitignore
.lgtm.yml
.watchmanconfig
AUTHORS
CMakeLists.txt Fix use of crc32c 3way on portable builds using MSVC (#10667) 2022-11-08 11:56:55 -08:00
CODE_OF_CONDUCT.md
common.mk
CONTRIBUTING.md
COPYING
crash_test.mk
DEFAULT_OPTIONS_HISTORY.md
DUMP_FORMAT.md
HISTORY.md Don't attempt to use SecondaryCache on block_cache_compressed (#10944) 2022-11-11 17:35:53 -08:00
INSTALL.md
issue_template.md
LANGUAGE-BINDINGS.md
LICENSE.Apache
LICENSE.leveldb
Makefile
PLUGINS.md
README.md
rocksdb.pc.in
ROCKSDB_LITE.md
src.mk
TARGETS
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.