diff --git a/Readme.md b/Readme.md index 7b6e0f45..0ba4c355 100644 --- a/Readme.md +++ b/Readme.md @@ -1,8 +1,11 @@ +![SPEC logo](./spec-logo.png) + [![codecov](https://codecov.io/gh/redis/redis-benchmarks-specification/branch/main/graph/badge.svg?token=GS64MV1H4W)](https://codecov.io/gh/redis/redis-benchmarks-specification) [![CI tests](https://github.com/redis/redis-benchmarks-specification/actions/workflows/tox.yml/badge.svg)](https://github.com/redis/redis-benchmarks-specification/actions/workflows/tox.yml) [![PyPI version](https://badge.fury.io/py/redis-benchmarks-specification.svg)](https://pypi.org/project/redis-benchmarks-specification) + ## Installation To have access to the latest SPEC and Tooling impletamtion you only need to install one python package. @@ -23,6 +26,11 @@ Members from both industry and academia, including organizations and individuals Currently, the following members actively support this project: - [Redis Ltd.](https://redis.com/) via the Redis Performance Group: providing steady-stable infrastructure platform to run the benchmark suite. Supporting the active development of this project within the company. +- [Intel.](https://intel.com/): Intel is hosting an on-prem cluster of servers dedicated to the always-on automatic performance testing. + + The cluster contains six current generation (IceLake) servers and six prior generation (CascadeLake) servers connected to a high-speed 40Gb switch. + + The older servers are used for performance testing across hardware generations, as well as for load generation clients in client-server benchmarks. ## Scope @@ -35,9 +43,9 @@ This repo aims to provide Redis related benchmark standards and methodologies fo - Exporting performance results in several formats (CSV, RedisTimeSeries, JSON) -- **[SOON]** Finding on-cpu, off-cpu, io, and threading performance problems by attaching profiling tools/probers ( perf (a.k.a. perf_events), bpf tooling, vtune ) +- Finding on-cpu, off-cpu, io, and threading performance problems by attaching profiling tools/probers ( perf (a.k.a. perf_events), bpf tooling, vtune ) -- **[SOON]** Finding performance problems by attaching telemetry probes +- Finding performance problems by attaching telemetry probes Current supported benchmark tools: @@ -58,63 +66,7 @@ python3 -m pip install redis-benchmarks-specification ## Architecture diagram -``` - - -┌──────────────────────────────────────┐ -│1) gh.com/redis/redis update │ -│ - git_repo: github.com/redis/redis │ -│ - git_hash: 459c3a │ -│ - git_branch: unstable │ -└─────────────────┬────────────────────┘ - │ - │ ┌───────────────────────────────────┐ - │ │HTTP POST │ - └──────┤/api/gh/redis/redis/commit │──┐ - └───────────────────────────────────┘ │ - │ - ▼ - ┌──────────────────────────────────────────┐ - │2) api │ - │ - Converts the HTTP info into an stream │ - │entry │ - │ - XADD stream:redis:redis:commit <...> │ - │ │ - └─────────────────────┬────────────────────┘ - │ - │ - │ - │ ┌────┐ - .─────────────────────────────────────. │ │push│ - ┌─────┐ ┌ ▶( 2.1 ) stream of build events )◀───┘ └────┘ - │pull │ `─────────────────────────────────────' - └─────┘ │ - - │ ┌────────────────────────────────────────────┐ - ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─│2.2) build_agent │ - │ - based on setup platforms │ - │ - build different required redis │ - │artifacts │ - └───────────────────────┬────────────────────┘ - │ - │ - │ ┌────┐ - .─────────────────────────────────────. │ │push│ - ┌─────┐ ─▶( 2.3 ) stream of artifact benchmarks )◀────┘ └────┘ - │pull ││ `─────────────────────────────────────' - └─────┘ - │ - ┌────────────────────────────────────────────┐ - │ │ │ - │3) benchmark_coordinator │ - │ │ - based on test-suites and setups: │ - │ - Trigger env setup │ - └ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─│ - 3.1 ) Trigger topology setup │ - │ - 3.2 ) Run benchmarks │ - │ - Record results into datasinks │ - │ │ - └────────────────────────────────────────────┘ -``` +![Architecture diagram](./arch-diagram.png) In a very brief description, github.com/redis/redis upstream changes trigger an HTTP API call containing the relevant git information. diff --git a/arch-diagram.png b/arch-diagram.png new file mode 100644 index 00000000..f59d9569 Binary files /dev/null and b/arch-diagram.png differ diff --git a/spec-logo.png b/spec-logo.png new file mode 100644 index 00000000..38341783 Binary files /dev/null and b/spec-logo.png differ