Skip to content

Commit 74197da

Browse files
Included XREAD, XADD, and ZRANGE benchmarks (#88)
* Removed test_commands.py given it's not ready yet * Included XREAD, XADD, and ZRANGE benchmarks * Fixes per PR review
1 parent 6880d60 commit 74197da

13 files changed

+355
-2
lines changed

redis_benchmarks_specification/__runner__/args.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@ def create_client_runner_args(project_name):
2424
)
2525
parser.add_argument("--triggering_env", type=str, default="ci")
2626
parser.add_argument("--setup_type", type=str, default="oss-standalone")
27-
parser.add_argument("--github_repo", type=str, required=True)
28-
parser.add_argument("--github_org", type=str, required=True)
27+
parser.add_argument("--github_repo", type=str, default="redis")
28+
parser.add_argument("--github_org", type=str, default="redis")
2929
parser.add_argument("--github_version", type=str, default="NA")
3030
parser.add_argument(
3131
"--logname", type=str, default=None, help="logname to write the logs to"

redis_benchmarks_specification/__runner__/runner.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
from redisbench_admin.run.common import (
1616
get_start_time_vars,
1717
prepare_benchmark_parameters,
18+
execute_init_commands,
1819
)
1920
from redisbench_admin.run.redistimeseries import timeseries_test_sucess_flow
2021
from redisbench_admin.run.run import calculate_client_tool_duration_and_check
@@ -293,6 +294,10 @@ def process_self_contained_coordinator_stream(
293294
test_tls_cacert,
294295
)
295296

297+
execute_init_commands(
298+
benchmark_config, r, dbconfig_keyname="dbconfig"
299+
)
300+
296301
benchmark_tool = extract_client_tool(benchmark_config)
297302
# backwards compatible
298303
if benchmark_tool is None:

redis_benchmarks_specification/__self_contained_coordinator__/self_contained_coordinator.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -411,6 +411,9 @@ def process_self_contained_coordinator_stream(
411411
run_image, db_cpuset_cpus, command_str
412412
)
413413
)
414+
# profiler_enabled = False
415+
# if "profile" in metadata:
416+
# profiler_enabled = bool(metadata["profile"])
414417
container = docker_client.containers.run(
415418
image=run_image,
416419
volumes={
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
version: 0.1
2+
id: gcc:8.5.0-amd64-debian-buster-default
3+
os: debian-buster
4+
arch: amd64
5+
compiler: "gcc"
6+
cpp_compiler: "g++"
7+
kind: docker
8+
build_image: gcc:8.5.0-buster
9+
description: "Using GNU Compiler Containers (https://hub.docker.com/_/gcc?tab=description)
10+
pre-configured environment with all the tools required to build with gcc."
11+
metadata:
12+
compiler: "gcc"
13+
compiler_version: "8.5.0"
14+
os: debian-buster
15+
arch: amd64
16+
profile: "true"
17+
18+
env:
19+
REDIS_CFLAGS: "-g -fno-omit-frame-pointer"
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
version: 0.4
2+
name: "memtier_benchmark-1Mkeys-load-stream-1-fields-with-100B-values-pipeline-10"
3+
description: "Runs memtier_benchmark, for a keyspace length of 1M keys
4+
loading STREAMs in which the value has a data size of 100 Bytes."
5+
dbconfig:
6+
configuration-parameters:
7+
save: '""'
8+
tested-commands:
9+
- XADD
10+
redis-topologies:
11+
- oss-standalone
12+
13+
build-variants:
14+
- gcc:8.5.0-amd64-debian-buster-default
15+
16+
clientconfig:
17+
run_image: redislabs/memtier_benchmark:edge
18+
tool: memtier_benchmark
19+
arguments: '"--pipeline" "10" "--data-size" "100" --command "XADD __key__ * field __data__" --command-key-pattern="P" --key-minimum=1 --key-maximum 1000000 --test-time 180 -c 50 -t 4 --hide-histogram'
20+
resources:
21+
requests:
22+
cpus: "4"
23+
memory: "2g"
24+
exporter:
25+
redistimeseries:
26+
break_by:
27+
- version
28+
- commit
29+
timemetric: '$."ALL STATS".Runtime."Start time"'
30+
metrics:
31+
- '$."ALL STATS".*."Ops/sec"'
32+
- '$."ALL STATS".*."Latency"'
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
version: 0.4
2+
name: "memtier_benchmark-1Mkeys-load-stream-1-fields-with-100B-values"
3+
description: "Runs memtier_benchmark, for a keyspace length of 1M keys
4+
loading STREAMs in which the value has a data size of 100 Bytes."
5+
dbconfig:
6+
configuration-parameters:
7+
save: '""'
8+
tested-commands:
9+
- XADD
10+
redis-topologies:
11+
- oss-standalone
12+
13+
build-variants:
14+
- gcc:8.5.0-amd64-debian-buster-default
15+
16+
clientconfig:
17+
run_image: redislabs/memtier_benchmark:edge
18+
tool: memtier_benchmark
19+
arguments: '"--data-size" "100" --command "XADD __key__ * field __data__" --command-key-pattern="P" --key-minimum=1 --key-maximum 1000000 --test-time 180 -c 50 -t 4 --hide-histogram'
20+
resources:
21+
requests:
22+
cpus: "4"
23+
memory: "2g"
24+
exporter:
25+
redistimeseries:
26+
break_by:
27+
- version
28+
- commit
29+
timemetric: '$."ALL STATS".Runtime."Start time"'
30+
metrics:
31+
- '$."ALL STATS".*."Ops/sec"'
32+
- '$."ALL STATS".*."Latency"'
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
version: 0.4
2+
name: "memtier_benchmark-1Mkeys-load-stream-5-fields-with-100B-values-pipeline-10"
3+
description: "Runs memtier_benchmark, for a keyspace length of 1M keys
4+
loading STREAMs in which the 5 field values have a data size of 100 Bytes."
5+
dbconfig:
6+
configuration-parameters:
7+
save: '""'
8+
tested-commands:
9+
- XADD
10+
redis-topologies:
11+
- oss-standalone
12+
13+
build-variants:
14+
- gcc:8.5.0-amd64-debian-buster-default
15+
16+
clientconfig:
17+
run_image: redislabs/memtier_benchmark:edge
18+
tool: memtier_benchmark
19+
arguments: '"--pipeline" "10" "--data-size" "100" --command "XADD __key__ * field __data__ field __data__ field __data__ field __data__ field __data__" --command-key-pattern="P" --key-minimum=1 --key-maximum 1000000 --test-time 180 -c 50 -t 4 --hide-histogram'
20+
resources:
21+
requests:
22+
cpus: "4"
23+
memory: "2g"
24+
exporter:
25+
redistimeseries:
26+
break_by:
27+
- version
28+
- commit
29+
timemetric: '$."ALL STATS".Runtime."Start time"'
30+
metrics:
31+
- '$."ALL STATS".*."Ops/sec"'
32+
- '$."ALL STATS".*."Latency"'
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
version: 0.4
2+
name: "memtier_benchmark-1Mkeys-load-stream-5-fields-with-100B-values"
3+
description: "Runs memtier_benchmark, for a keyspace length of 1M keys
4+
loading STREAMs in which the 5 field values have a data size of 100 Bytes."
5+
dbconfig:
6+
configuration-parameters:
7+
save: '""'
8+
tested-commands:
9+
- XADD
10+
redis-topologies:
11+
- oss-standalone
12+
13+
build-variants:
14+
- gcc:8.5.0-amd64-debian-buster-default
15+
16+
clientconfig:
17+
run_image: redislabs/memtier_benchmark:edge
18+
tool: memtier_benchmark
19+
arguments: '"--data-size" "100" --command "XADD __key__ * field __data__ field __data__ field __data__ field __data__ field __data__" --command-key-pattern="P" --key-minimum=1 --key-maximum 1000000 --test-time 180 -c 50 -t 4 --hide-histogram'
20+
resources:
21+
requests:
22+
cpus: "4"
23+
memory: "2g"
24+
exporter:
25+
redistimeseries:
26+
break_by:
27+
- version
28+
- commit
29+
timemetric: '$."ALL STATS".Runtime."Start time"'
30+
metrics:
31+
- '$."ALL STATS".*."Ops/sec"'
32+
- '$."ALL STATS".*."Latency"'
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
version: 0.4
2+
name: "memtier_benchmark-1key-zset-10-elements-zrange-all-elements"
3+
description: "Runs memtier_benchmark, for a keyspace length of 1 SORTED SET key.
4+
The SORTED SET contains 10 elements in it and we query it using ZRANGE BYSCORE with a range of all elements.
5+
"
6+
7+
dbconfig:
8+
- configuration-parameters:
9+
save: '""'
10+
- init_commands:
11+
- '"ZADD" "zset:10" "0.306275" "lysbgqqfqw" "0.486004" "mtccjerdon" "0.941626" "jekkafodvk" "0.602656" "nmgxcctxpn" "0.630771" "vyqqkuszzh" "0.406379" "pytrnqdhvs" "0.521814" "oguwnmniig" "0.182854" "gekntrykfh" "0.657658" "nhfnbxqgol" "0.218066" "cgoeihlnei"'
12+
tested-commands:
13+
- ZRANGE
14+
redis-topologies:
15+
- oss-standalone
16+
17+
build-variants:
18+
- gcc:8.5.0-amd64-debian-buster-default
19+
20+
clientconfig:
21+
run_image: redislabs/memtier_benchmark:edge
22+
tool: memtier_benchmark
23+
arguments: '--command="ZRANGE zset:10 0 1 BYSCORE WITHSCORES" --hide-histogram --test-time 180'
24+
resources:
25+
requests:
26+
cpus: "4"
27+
memory: "2g"
28+
exporter:
29+
redistimeseries:
30+
break_by:
31+
- version
32+
- commit
33+
timemetric: '$."ALL STATS".Runtime."Start time"'
34+
metrics:
35+
- '$."ALL STATS".*."Ops/sec"'
36+
- '$."ALL STATS".*."Latency"'
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
version: 0.4
2+
name: "memtier_benchmark-1key-zset-100-elements-zrange-all-elements"
3+
description: "Runs memtier_benchmark, for a keyspace length of 1 SORTED SET key.
4+
The SORTED SET contains 100 elements in it and we query it using ZRANGE BYSCORE with a range of all elements.
5+
"
6+
7+
dbconfig:
8+
- configuration-parameters:
9+
save: '""'
10+
- init_commands:
11+
- '"ZADD" "zset:100" "0.306275" "lysbgqqfqw" "0.486004" "mtccjerdon" "0.941626" "jekkafodvk" "0.602656" "nmgxcctxpn" "0.630771" "vyqqkuszzh" "0.406379" "pytrnqdhvs" "0.521814" "oguwnmniig" "0.182854" "gekntrykfh" "0.657658" "nhfnbxqgol" "0.218066" "cgoeihlnei" "0.366328" "kgqrovsxce" "0.520723" "imyizmhzjk" "0.426630" "urvgxwbiiz" "0.878001" "onzjrteqmu" "0.126097" "alqlzsvuuz" "0.562698" "lgrkndhekf" "0.357487" "tcjvjofxtd" "0.395563" "ouuybhtvyb" "0.745796" "owbbdezgxn" "0.165356" "ksqpdywgdd" "0.757214" "qrosceblyo" "0.346153" "agsdggdghc" "0.297342" "gfdqdrondm" "0.668749" "oapbvnisyq" "0.281552" "htvbwmfyic" "0.013874" "vyoomgwuzv" "0.052023" "pcxdhdjwnf" "0.648518" "ibhohmfxzt" "0.967245" "erxulvebrj" "0.971791" "qwxrsgafzy" "0.154577" "whmotknaff" "0.404082" "ueyrvldzwl" "0.324634" "nsxaigrnje" "0.342459" "xsepfhdizi" "0.988925" "exvhmqxvvp" "0.345154" "owtkxlzaci" "0.728413" "ypfeltycpy" "0.406783" "qbiwbqiubb" "0.714527" "wqiwdbncmt" "0.760975" "dapacykoah" "0.212614" "hhjclfbbka" "0.445330" "ujrxcmpvsq" "0.576866" "lbtpbknelm" "0.764225" "wvcnqbvlnf" "0.281427" "mibvtmqxcy" "0.596978" "aovfsvbwjg" "0.650632" "qbyhorvill" "0.948063" "ypekeuutef" "0.028779" "xamjodnbpf" "0.678338" "hhniikmtsx" "0.757806" "sahqeskveq" "0.671949" "bqntlsaqjb" "0.190314" "luemuetmia" "0.219219" "zwnitejtpg" "0.212301" "ncjfckgkcl" "0.730613" "qjyeqcfhjj" "0.657992" "wkbasfyzqz" "0.556851" "ccagtnjilc" "0.543822" "pqyurbvifk" "0.101854" "djetcyfxuc" "0.878471" "vpmpffdoqz" "0.696931" "hlpdstpvzw" "0.662898" "imdqxmkzdj" "0.887214" "eouliovvra" "0.193298" "gxephxbdru" "0.978115" "dlsjwmqzhx" "0.743150" "uapsgmizgh" "0.181609" "gorgpnnqwr" "0.638726" "rojeolnopp" "0.561627" "mbxohpancs" "0.223001" "upodnpqenn" "0.957952" "dlbqcynhrn" "0.586659" "ichqzmiyot" "0.813623" "ulbrotlhze" "0.111318" "licotqplim" "0.525834" "mxwgdcutnb" "0.405858" "vpbkvwgxsf" "0.129768" "ijsmoyesvd" "0.591274" "mbgehjiauu" "0.718370" "vymjzlzqcn" "0.189343" "rjkknoigmu" "0.566307" "jxoxtnzujs" "0.563082" "eqlgkwosie" "0.040883" "ljcgdooafo" "0.326765" "cwaveajmcz" "0.423381" "ssjqrsluod" "0.865798" "fhuvzpxjbc" "0.784445" "perfwnpvkl" "0.659790" "mjjuylgssm" "0.918901" "vxcbagyymm" "0.282908" "nxcdcaqgit" "0.030110" "ewomnmugfa" "0.164237" "rkaznetutk" "0.281729" "rqvryfvlie" "0.877790" "holjcdpijr" "0.878293" "pquewclxuy" "0.674968" "ocrcszcznp" "0.520069" "xczfmrxrja" "0.314841" "nxzsnkmxvi" "0.719988" "hhjchwjlmc"'
12+
tested-commands:
13+
- ZRANGE
14+
redis-topologies:
15+
- oss-standalone
16+
17+
build-variants:
18+
- gcc:8.5.0-amd64-debian-buster-default
19+
20+
clientconfig:
21+
run_image: redislabs/memtier_benchmark:edge
22+
tool: memtier_benchmark
23+
arguments: '--command="ZRANGE zset:100 0 1 BYSCORE WITHSCORES" --hide-histogram --test-time 180'
24+
resources:
25+
requests:
26+
cpus: "4"
27+
memory: "2g"
28+
exporter:
29+
redistimeseries:
30+
break_by:
31+
- version
32+
- commit
33+
timemetric: '$."ALL STATS".Runtime."Start time"'
34+
metrics:
35+
- '$."ALL STATS".*."Ops/sec"'
36+
- '$."ALL STATS".*."Latency"'

redis_benchmarks_specification/test-suites/memtier_benchmark-1key-zset-1K-elements-zrange-all-elements.yml

Lines changed: 36 additions & 0 deletions
Large diffs are not rendered by default.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
version: 0.4
2+
name: "memtier_benchmark-2keys-stream-5-entries-xread-all-entries-pipeline-10"
3+
description: "Runs memtier_benchmark, for a keyspace length of 2 STREAM keys with 5 entries on each stream.
4+
We query both streams on the same command using XREAD with range of all entries.
5+
"
6+
7+
dbconfig:
8+
- configuration-parameters:
9+
save: '""'
10+
- init_commands:
11+
- 'xadd key-1 * field value'
12+
- 'xadd key-1 * field value'
13+
- 'xadd key-1 * field value'
14+
- 'xadd key-1 * field value'
15+
- 'xadd key-1 * field value'
16+
- 'xadd key-2 * field value'
17+
- 'xadd key-2 * field value'
18+
- 'xadd key-2 * field value'
19+
- 'xadd key-2 * field value'
20+
- 'xadd key-2 * field value'
21+
tested-commands:
22+
- XREAD
23+
redis-topologies:
24+
- oss-standalone
25+
26+
build-variants:
27+
- gcc:8.5.0-amd64-debian-buster-default
28+
29+
clientconfig:
30+
run_image: redislabs/memtier_benchmark:edge
31+
tool: memtier_benchmark
32+
arguments: '--pipeline 10 --command="XREAD STREAMS key-1 key-2 0 0" --hide-histogram --test-time 180'
33+
resources:
34+
requests:
35+
cpus: "4"
36+
memory: "2g"
37+
exporter:
38+
redistimeseries:
39+
break_by:
40+
- version
41+
- commit
42+
timemetric: '$."ALL STATS".Runtime."Start time"'
43+
metrics:
44+
- '$."ALL STATS".*."Ops/sec"'
45+
- '$."ALL STATS".*."Latency"'
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
version: 0.4
2+
name: "memtier_benchmark-2keys-stream-5-entries-xread-all-entries"
3+
description: "Runs memtier_benchmark, for a keyspace length of 2 STREAM keys with 5 entries on each stream.
4+
We query both streams on the same command using XREAD with range of all entries.
5+
"
6+
7+
dbconfig:
8+
- configuration-parameters:
9+
save: '""'
10+
- init_commands:
11+
- 'xadd key-1 * field value'
12+
- 'xadd key-1 * field value'
13+
- 'xadd key-1 * field value'
14+
- 'xadd key-1 * field value'
15+
- 'xadd key-1 * field value'
16+
- 'xadd key-2 * field value'
17+
- 'xadd key-2 * field value'
18+
- 'xadd key-2 * field value'
19+
- 'xadd key-2 * field value'
20+
- 'xadd key-2 * field value'
21+
tested-commands:
22+
- XREAD
23+
redis-topologies:
24+
- oss-standalone
25+
26+
build-variants:
27+
- gcc:8.5.0-amd64-debian-buster-default
28+
29+
clientconfig:
30+
run_image: redislabs/memtier_benchmark:edge
31+
tool: memtier_benchmark
32+
arguments: '--command="XREAD STREAMS key-1 key-2 0 0" --hide-histogram --test-time 180'
33+
resources:
34+
requests:
35+
cpus: "4"
36+
memory: "2g"
37+
exporter:
38+
redistimeseries:
39+
break_by:
40+
- version
41+
- commit
42+
timemetric: '$."ALL STATS".Runtime."Start time"'
43+
metrics:
44+
- '$."ALL STATS".*."Ops/sec"'
45+
- '$."ALL STATS".*."Latency"'

0 commit comments

Comments
 (0)