Go to file
Akanksha Mahajan bcefc59e9f Allow MultiGet users to limit cumulative value size (#6826)
Summary:
1. Add a value_size in read options which limits the cumulative value size of keys read in batches. Once the size exceeds read_options.value_size, all the remaining keys are returned with status Abort without further fetching any key.
2. Add a unit test case MultiGetBatchedValueSizeSimple the reads keys from memory and sst files.
Pull Request resolved: https://github.com/facebook/rocksdb/pull/6826

Test Plan:
1. make check -j64
	   2. Add a new unit test case

Reviewed By: anand1976

Differential Revision: D21471483

Pulled By: akankshamahajan15

fbshipit-source-id: dea51b8e76d5d1df38ece8cdb29933b1d798b900
2020-05-27 13:07:14 -07:00
.circleci pin image version in circle CI builds (#6876) 2020-05-23 21:23:27 -07:00
.github/workflows
buckifier
build_tools
cache
cmake
coverage
db Allow MultiGet users to limit cumulative value size (#6826) 2020-05-27 13:07:14 -07:00
db_stress_tool fix transaction rollback in db_stress TestMultiGet (#6873) 2020-05-24 15:27:24 -07:00
docs
env
examples
file Misc things for ASSERT_STATUS_CHECKED, also gcc 4.8.5 (#6871) 2020-05-23 06:53:37 -07:00
hdfs
include/rocksdb Allow MultiGet users to limit cumulative value size (#6826) 2020-05-27 13:07:14 -07:00
java Add newer WBWI::NewIteratorWithBase functions to RocksJava (#6872) 2020-05-27 11:59:12 -07:00
logging
memory
memtable
monitoring
options Allow MultiGet users to limit cumulative value size (#6826) 2020-05-27 13:07:14 -07:00
port
table Allow MultiGet users to limit cumulative value size (#6826) 2020-05-27 13:07:14 -07:00
test_util
third-party Misc things for ASSERT_STATUS_CHECKED, also gcc 4.8.5 (#6871) 2020-05-23 06:53:37 -07:00
tools
trace_replay
util
utilities Fix warning -Wextra-semi. NFC. (#6869) 2020-05-22 11:20:13 -07:00
.clang-format
.gitignore
.lgtm.yml
.travis.yml Misc things for ASSERT_STATUS_CHECKED, also gcc 4.8.5 (#6871) 2020-05-23 06:53:37 -07:00
.watchmanconfig
AUTHORS
CMakeLists.txt cmake: link env_librados_test against rados (#6855) 2020-05-25 22:53:00 -07:00
CODE_OF_CONDUCT.md
CONTRIBUTING.md
COPYING
DEFAULT_OPTIONS_HISTORY.md
DUMP_FORMAT.md
HISTORY.md Allow MultiGet users to limit cumulative value size (#6826) 2020-05-27 13:07:14 -07:00
INSTALL.md
LANGUAGE-BINDINGS.md
LICENSE.Apache
LICENSE.leveldb
Makefile Misc things for ASSERT_STATUS_CHECKED, also gcc 4.8.5 (#6871) 2020-05-23 06:53:37 -07:00
README.md
ROCKSDB_LITE.md
TARGETS
USERS.md
Vagrantfile
WINDOWS_PORT.md
appveyor.yml
defs.bzl
issue_template.md
src.mk
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 especially 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/ and https://rocksdb.slack.com/

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.