Find a file
Siying Dong 885b1c682e Two small refactoring for better inlining
Summary:
Move uncommon code paths in RangeDelAggregator::ShouldDelete() and IterKey::EnlargeBufferIfNeeded() to a separate function, so that the inlined strcuture can be more optimized.

Optimize it because these places show up in CPU profiling, though minimum. The performance is really hard measure. I ran db_bench with readseq benchmark against in-memory DB many times. The variation is big, but it seems to show 1% improvements.
Closes https://github.com/facebook/rocksdb/pull/2877

Differential Revision: D5828123

Pulled By: siying

fbshipit-source-id: 41a49e229f91e9f8409f85cc6f0dc70e31334e4b
2017-09-14 15:41:49 -07:00
buckifier rocksdb: make buildable on aarch64 2017-08-13 17:13:54 -07:00
build_tools update dependencies.sh 2017-08-31 15:26:24 -07:00
cache Add -DPORTABLE=1 to MSVC CI build 2017-08-31 16:42:48 -07:00
cmake CMake: Add support for CMake packages 2017-08-28 17:14:37 -07:00
coverage Fix /bin/bash shebangs 2017-08-03 15:56:46 -07:00
db Two small refactoring for better inlining 2017-09-14 15:41:49 -07:00
docs Minor updates to FlushWAL blog 2017-08-27 07:41:02 -07:00
env Introduce bottom-pri thread pool for large universal compactions 2017-08-03 15:43:29 -07:00
examples Pinnableslice examples and blog post 2017-08-24 12:26:07 -07:00
hdfs Revert "comment out unused parameters" 2017-07-21 18:26:26 -07:00
include/rocksdb Added save points for transactions C API 2017-09-14 14:18:59 -07:00
java Add iterator's SeekForPrev functionality to the java-api 2017-09-12 10:56:29 -07:00
memtable Fix CLANG Analyze 2017-09-07 14:28:06 -07:00
monitoring fix HistogramWindowingImpl copy-{assignment,constructor} 2017-09-01 11:11:56 -07:00
options regression test for missing init options 2017-09-13 11:56:35 -07:00
port Add -DPORTABLE=1 to MSVC CI build 2017-08-31 16:42:48 -07:00
table Make InternalKeyComparator final and directly use it in merging iterator 2017-09-11 12:04:21 -07:00
third-party Revert "comment out unused parameters" 2017-07-21 18:26:26 -07:00
tools Fix naming in InternalKey 2017-09-12 17:17:42 -07:00
util Make InternalKeyComparator final and directly use it in merging iterator 2017-09-11 12:04:21 -07:00
utilities Fix WriteBatchWithIndex::GetFromBatchAndDB not allowing StackableDB 2017-09-13 17:26:35 -07:00
.clang-format
.gitignore Remove leftover references to phutil_module_cache 2017-08-23 12:12:21 -07:00
.travis.yml Add more unit test to write_prepared txns 2017-08-31 09:41:27 -07:00
appveyor.yml Add -DPORTABLE=1 to MSVC CI build 2017-08-31 16:42:48 -07:00
AUTHORS
CMakeLists.txt Use cmake TIMESTAMP function 2017-09-12 17:17:42 -07:00
CONTRIBUTING.md
COPYING
DEFAULT_OPTIONS_HISTORY.md
DUMP_FORMAT.md
HISTORY.md support opening zero backups during engine init 2017-09-12 13:26:34 -07:00
INSTALL.md add vcpkg as an windows option 2017-07-24 15:12:45 -07:00
LANGUAGE-BINDINGS.md add Erlang to the list of language bindings 2017-08-28 16:43:16 -07:00
LICENSE.Apache
LICENSE.leveldb
Makefile Updated CRC32 Power Optimization Changes 2017-08-31 14:16:30 -07:00
README.md
ROCKSDB_LITE.md
src.mk Updated CRC32 Power Optimization Changes 2017-08-31 14:16:30 -07:00
TARGETS Add more unit test to write_prepared txns 2017-08-31 09:41:27 -07:00
thirdparty.inc
USERS.md Update USERS.md 2017-08-06 12:44:40 -07:00
Vagrantfile
WINDOWS_PORT.md

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

Build Status 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/