Go to file
Eli Pozniansky 74fb7f0ba5 Cleaned up and simplified LRU cache implementation (#5579)
Summary:
The 'refs' field in LRUHandle now counts only external references, since anyway we already have the IN_CACHE flag. This simplifies reference accounting logic a bit. Also cleaned up few asserts code as well as the comments - to be more readable.
Pull Request resolved: https://github.com/facebook/rocksdb/pull/5579

Differential Revision: D16286747

Pulled By: elipoz

fbshipit-source-id: 7186d88f80f512ce584d0a303437494b5cbefd7f
2019-07-16 19:17:45 -07:00
buckifier
build_tools
cache Cleaned up and simplified LRU cache implementation (#5579) 2019-07-16 19:17:45 -07:00
cmake
coverage
db Remove RandomAccessFileReader.for_compaction_ (#5572) 2019-07-16 16:32:18 -07:00
docs
env
examples
file
hdfs
include/rocksdb
java
logging
memory
memtable
monitoring
options
port Fix regression - 100% CPU - Regression for Windows 7 (#5557) 2019-07-15 12:19:49 -07:00
table Move the filter readers out of the block cache (#5504) 2019-07-16 13:14:58 -07:00
test_util Added support for sequential read-ahead file (#5580) 2019-07-16 18:21:18 -07:00
third-party/gtest-1.7.0/fused-src/gtest
tools Move the filter readers out of the block cache (#5504) 2019-07-16 13:14:58 -07:00
trace_replay
util Added support for sequential read-ahead file (#5580) 2019-07-16 18:21:18 -07:00
utilities WriteUnPrepared: use tracked_keys_ to track keys needed for rollback (#5562) 2019-07-16 15:24:56 -07:00
.clang-format
.gitignore Cleaned up and simplified LRU cache implementation (#5579) 2019-07-16 19:17:45 -07:00
.lgtm.yml
.travis.yml
AUTHORS
CMakeLists.txt Move the filter readers out of the block cache (#5504) 2019-07-16 13:14:58 -07:00
CODE_OF_CONDUCT.md
CONTRIBUTING.md
COPYING
DEFAULT_OPTIONS_HISTORY.md
DUMP_FORMAT.md
HISTORY.md Move the filter readers out of the block cache (#5504) 2019-07-16 13:14:58 -07:00
INSTALL.md
LANGUAGE-BINDINGS.md
LICENSE.Apache
LICENSE.leveldb
Makefile
README.md
ROCKSDB_LITE.md
TARGETS Move the filter readers out of the block cache (#5504) 2019-07-16 13:14:58 -07:00
USERS.md
Vagrantfile
WINDOWS_PORT.md
appveyor.yml
defs.bzl
issue_template.md
src.mk Move the filter readers out of the block cache (#5504) 2019-07-16 13:14:58 -07:00
thirdparty.inc

README.md

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

Linux/Mac Build Status Windows 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 specially 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/

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.