Go to file
Alan Paxton 2f4a0ffef8 CI Benchmarking with CircleCI Runner and OpenSearch Dashboard (EB 1088) (#9723)
Summary:
CircleCI runner based benchmarking. A runner is a dedicate machine configured for CircleCI to perform work on. Our work is a repeatable benchmark, the `benchmark-linux` job in `config.yml`

A runner, in CircleCI terminology, is a machine that is managed by the client (us) rather than running on CircleCI resources in the cloud. This means that we define and configure the iron, and that therefore the performance is repeatable and predictable. Which is what we need for performance regression benchmarking.

On a time schedule (or on commit, during branch development) benchmarks are set off on the runner, and then a script is run `benchmark_log_tool.py` which parses the benchmark output and pushes it into a pre-configured OpenSearch document connected to an OpenSearch dashboard. Members of the team can examine benchmark performance changes on the dashboard.

As time progresses we can add different benchmarks to the suite which gets run.

Pull Request resolved: https://github.com/facebook/rocksdb/pull/9723

Reviewed By: pdillinger

Differential Revision: D35555626

Pulled By: jay-zhuang

fbshipit-source-id: c6a905ca04494495c3784cfbb991f5ab90c807ee
2022-06-04 09:31:47 -07:00
.circleci CI Benchmarking with CircleCI Runner and OpenSearch Dashboard (EB 1088) (#9723) 2022-06-04 09:31:47 -07:00
.github/workflows
buckifier
build_tools CI Benchmarking with CircleCI Runner and OpenSearch Dashboard (EB 1088) (#9723) 2022-06-04 09:31:47 -07:00
cache
cmake
coverage
db Add wide column serialization primitives (#9915) 2022-06-03 20:54:48 -07:00
db_stress_tool
docs
env
examples Add a simple example of backup and restore (#10054) 2022-06-03 23:25:31 -07:00
file Fix a bug in WAL tracking (#10087) 2022-06-03 16:33:00 -07:00
fuzz
include/rocksdb Add wide column serialization primitives (#9915) 2022-06-03 20:54:48 -07:00
java
logging
memory
memtable
microbench
monitoring
options
plugin
port
table Point-lookup returns timestamps of Delete and SingleDelete (#10056) 2022-06-03 20:00:42 -07:00
test_util
third-party
tools Fix some bugs in verify_random_db.sh (#10112) 2022-06-03 16:35:13 -07:00
trace_replay
util Add wide column serialization primitives (#9915) 2022-06-03 20:54:48 -07:00
utilities Point-lookup returns timestamps of Delete and SingleDelete (#10056) 2022-06-03 20:00:42 -07:00
.clang-format
.gitignore
.lgtm.yml
.travis.yml
.watchmanconfig
AUTHORS
CMakeLists.txt Add wide column serialization primitives (#9915) 2022-06-03 20:54:48 -07:00
CODE_OF_CONDUCT.md
CONTRIBUTING.md
COPYING
DEFAULT_OPTIONS_HISTORY.md
DUMP_FORMAT.md
HISTORY.md Fix a bug in WAL tracking (#10087) 2022-06-03 16:33:00 -07:00
INSTALL.md
LANGUAGE-BINDINGS.md
LICENSE.Apache
LICENSE.leveldb
Makefile Add wide column serialization primitives (#9915) 2022-06-03 20:54:48 -07:00
PLUGINS.md
README.md
ROCKSDB_LITE.md
TARGETS Add wide column serialization primitives (#9915) 2022-06-03 20:54:48 -07:00
USERS.md
Vagrantfile
WINDOWS_PORT.md
common.mk
crash_test.mk
issue_template.md
rocksdb.pc.in
src.mk Add wide column serialization primitives (#9915) 2022-06-03 20:54:48 -07:00
thirdparty.inc

README.md

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

CircleCI Status TravisCI Status Appveyor 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 especially suitable for storing multiple terabytes of data in a single database.

Start with example usage here: https://github.com/facebook/rocksdb/tree/main/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.

Questions and discussions are welcome on the RocksDB Developers Public Facebook group and email list on Google Groups.

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.