swh:1:snp:5115096b921df712aeb2a08114fede57fb3331fb
Revision 3f622152102075c3973697da8c562c423b45cd81 authored by Andrew Kryczka on 19 November 2016, 00:54:09 UTC, committed by Facebook Github Bot on 19 November 2016, 01:09:11 UTC
Summary:
Since a RangeDelAggregator is created for each read request, these heap-allocating member variables were consuming significant CPU (~3% total) which slowed down request throughput. The map and pinning manager are only necessary when range deletions exist, so we can defer their initialization until the first range deletion is encountered. Currently lazy initialization is done for reads only since reads pass us a single snapshot, which is easier to store on the stack for later insertion into the map than the vector passed to us by flush or compaction.

Note the Arena member variable is still expensive, I will figure out what to do with it in a subsequent diff. It cannot be lazily initialized because we currently use this arena even to allocate empty iterators, which is necessary even when no range deletions exist.
Closes https://github.com/facebook/rocksdb/pull/1539

Differential Revision: D4203488

Pulled By: ajkr

fbshipit-source-id: 3b36279
1 parent 41e77b8
History
Tip revision: 19076c95aa2bcee55c26fcf0960cc844ad86ee9c authored by Levi Tamasi on 21 January 2021, 22:18:25 UTC
Update HISTORY.md for PR 7888 (#7890)
Tip revision: 19076c9
File Mode Size
arcanist_util
build_tools
cmake
coverage
db
docs
examples
hdfs
include
java
memtable
port
table
third-party
tools
util
utilities
.arcconfig -rw-r--r-- 566 bytes
.clang-format -rw-r--r-- 138 bytes
.gitignore -rw-r--r-- 687 bytes
.travis.yml -rw-r--r-- 1.5 KB
AUTHORS -rw-r--r-- 247 bytes
CMakeLists.txt -rw-r--r-- 23.6 KB
CONTRIBUTING.md -rw-r--r-- 733 bytes
DEFAULT_OPTIONS_HISTORY.md -rw-r--r-- 1.1 KB
DUMP_FORMAT.md -rw-r--r-- 763 bytes
HISTORY.md -rw-r--r-- 38.3 KB
INSTALL.md -rw-r--r-- 3.9 KB
LANGUAGE-BINDINGS.md -rw-r--r-- 646 bytes
LICENSE -rw-r--r-- 1.6 KB
Makefile -rw-r--r-- 49.7 KB
PATENTS -rw-r--r-- 1.9 KB
README.md -rw-r--r-- 1.4 KB
ROCKSDB_LITE.md -rw-r--r-- 1.0 KB
USERS.md -rw-r--r-- 4.5 KB
Vagrantfile -rw-r--r-- 877 bytes
WINDOWS_PORT.md -rw-r--r-- 12.5 KB
appveyor.yml -rw-r--r-- 555 bytes
src.mk -rw-r--r-- 23.8 KB
thirdparty.inc -rw-r--r-- 7.8 KB

README.md

back to top