https://github.com/facebook/rocksdb
Revision 2e5a323dbd4dbfad5b1e3d45d489e6dca37f4257 authored by Ali Saidi on 15 June 2022, 20:08:11 UTC, committed by Facebook GitHub Bot on 15 June 2022, 20:08:11 UTC
Summary: While the yield instruction conseptually sounds correct on most platforms it is a simple nop that doesn't delay the execution anywhere close to what an x86 pause instruction does. In other projects with spin-wait loops an isb has been observed to be much closer to the x86 behavior. On a Graviton3 system the following test improves on average by 2x with this change averaged over 20 runs: ``` ./db_bench -benchmarks=fillrandom -threads=64 -batch_size=1 -memtablerep=skip_list -value_size=100 --num=100000 level0_slowdown_writes_trigger=9999 -level0_stop_writes_trigger=9999 -disable_auto_compactions --max_write_buffer_number=8 -max_background_flushes=8 --disable_wal --write_buffer_size=160000000 --block_size=16384 --allow_concurrent_memtable_write -compression_type none ``` Pull Request resolved: https://github.com/facebook/rocksdb/pull/10118 Reviewed By: jay-zhuang Differential Revision: D37120578 fbshipit-source-id: c20bde4298222edfab7ff7cb6d42497e7012400d
1 parent 69a32ee
Tip revision: 2e5a323dbd4dbfad5b1e3d45d489e6dca37f4257 authored by Ali Saidi on 15 June 2022, 20:08:11 UTC
Change the instruction used for a pause on arm64 (#10118)
Change the instruction used for a pause on arm64 (#10118)
Tip revision: 2e5a323
File | Mode | Size |
---|---|---|
.circleci | ||
.github | ||
buckifier | ||
build_tools | ||
cache | ||
cmake | ||
coverage | ||
db | ||
db_stress_tool | ||
docs | ||
env | ||
examples | ||
file | ||
fuzz | ||
include | ||
java | ||
logging | ||
memory | ||
memtable | ||
microbench | ||
monitoring | ||
options | ||
plugin | ||
port | ||
table | ||
test_util | ||
third-party | ||
tools | ||
trace_replay | ||
util | ||
utilities | ||
.clang-format | -rw-r--r-- | 138 bytes |
.gitignore | -rw-r--r-- | 1017 bytes |
.lgtm.yml | -rw-r--r-- | 67 bytes |
.travis.yml | -rw-r--r-- | 8.9 KB |
.watchmanconfig | -rw-r--r-- | 130 bytes |
AUTHORS | -rw-r--r-- | 322 bytes |
CMakeLists.txt | -rw-r--r-- | 52.6 KB |
CODE_OF_CONDUCT.md | -rw-r--r-- | 3.3 KB |
CONTRIBUTING.md | -rw-r--r-- | 706 bytes |
COPYING | -rw-r--r-- | 17.7 KB |
DEFAULT_OPTIONS_HISTORY.md | -rw-r--r-- | 1.5 KB |
DUMP_FORMAT.md | -rw-r--r-- | 763 bytes |
HISTORY.md | -rw-r--r-- | 234.5 KB |
INSTALL.md | -rw-r--r-- | 7.9 KB |
LANGUAGE-BINDINGS.md | -rw-r--r-- | 1.2 KB |
LICENSE.Apache | -rw-r--r-- | 11.1 KB |
LICENSE.leveldb | -rw-r--r-- | 1.5 KB |
Makefile | -rw-r--r-- | 94.3 KB |
PLUGINS.md | -rw-r--r-- | 705 bytes |
README.md | -rw-r--r-- | 2.1 KB |
ROCKSDB_LITE.md | -rw-r--r-- | 1.0 KB |
TARGETS | -rw-r--r-- | 656.7 KB |
USERS.md | -rw-r--r-- | 8.3 KB |
Vagrantfile | -rw-r--r-- | 1017 bytes |
WINDOWS_PORT.md | -rw-r--r-- | 12.5 KB |
common.mk | -rw-r--r-- | 963 bytes |
crash_test.mk | -rw-r--r-- | 3.5 KB |
issue_template.md | -rw-r--r-- | 294 bytes |
rocksdb.pc.in | -rw-r--r-- | 292 bytes |
src.mk | -rw-r--r-- | 44.5 KB |
thirdparty.inc | -rw-r--r-- | 7.8 KB |
Computing file changes ...