Find a file
Amy Tai 28087acd79 Implemented Knuth shuffle to construct permutation for selecting no_o…
Summary:
…verwrite_keys. Also changed each no_overwrite_key set to an unordered set, otherwise Knuth shuffle only gets you 2x time improvement, because insertion (and subsequent internal sorting) into an ordered set is the bottleneck.

With this change, each iteration of permutation construction and prefix selection takes around 40 secs, as opposed to 360 secs previously. However, this still means that with the default 10 CF per blackbox test case, the test is going to time out given the default interval of 200 secs.

Also, there is currently an assertion error affecting all blackbox tests in db_crashtest.py; this assertion error will be fixed in a future PR.
Closes https://github.com/facebook/rocksdb/pull/3699

Differential Revision: D7624616

Pulled By: amytai

fbshipit-source-id: ea64fbe83407ff96c1c0ecabbc6c830576939393
2018-04-13 22:13:13 -07:00
buckifier
build_tools
cache comment unused parameters to turn on -Wunused-parameter flag 2018-04-12 17:59:16 -07:00
cmake
coverage
db add kEntryRangeDeletion 2018-04-13 11:27:17 -07:00
docs
env Make database files' permissions configurable 2018-04-13 13:13:04 -07:00
examples
hdfs
include/rocksdb Make database files' permissions configurable 2018-04-13 13:13:04 -07:00
java comment unused parameters to turn on -Wunused-parameter flag 2018-04-12 17:59:16 -07:00
memtable comment unused parameters to turn on -Wunused-parameter flag 2018-04-12 17:59:16 -07:00
monitoring comment unused parameters to turn on -Wunused-parameter flag 2018-04-12 17:59:16 -07:00
options
port
table comment unused parameters to turn on -Wunused-parameter flag 2018-04-12 17:59:16 -07:00
third-party
tools Implemented Knuth shuffle to construct permutation for selecting no_o… 2018-04-13 22:13:13 -07:00
util comment unused parameters to turn on -Wunused-parameter flag 2018-04-12 17:59:16 -07:00
utilities comment unused parameters to turn on -Wunused-parameter flag 2018-04-12 17:59:16 -07:00
.clang-format
.gitignore
.travis.yml
appveyor.yml
AUTHORS
CMakeLists.txt
CODE_OF_CONDUCT.md
CONTRIBUTING.md
COPYING
DEFAULT_OPTIONS_HISTORY.md
DUMP_FORMAT.md
HISTORY.md
INSTALL.md
issue_template.md
LANGUAGE-BINDINGS.md
LICENSE.Apache
LICENSE.leveldb
Makefile comment unused parameters to turn on -Wunused-parameter flag 2018-04-12 17:59:16 -07:00
README.md
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

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.