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
History
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)
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

README.md

back to top