Skip to content

Commit 0f3bf3d

Browse files
Extended benchmarks with LPOP, RPOP, LPUSH, HGETALL, HGET, HVALS, HKEYS, HGET commands (#75)
1 parent 71a7e28 commit 0f3bf3d

9 files changed

+142
-7
lines changed

redis_benchmarks_specification/__builder__/builder.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,9 @@ def main():
5757
parser.add_argument(
5858
"--logname", type=str, default=None, help="logname to write the logs to"
5959
)
60+
parser.add_argument(
61+
"--arch", type=str, default="x86", help="arch to build artifacts"
62+
)
6063
parser.add_argument(
6164
"--setups-folder",
6265
type=str,
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
version: 0.1
2+
id: gcc:8.5.0-arm64-debian-buster-default
3+
os: debian-buster
4+
arch: arm64
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: arm64
16+
17+
env:
18+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
version: 0.4
2+
name: "memtier_benchmark-1Mkeys-hash-hget-hgetall-hkeys-hvals-with-100B-values"
3+
description: "Runs memtier_benchmark, for a keyspace length of 1M keys
4+
pre-loading HASHes in which the value has a data size of 100 Bytes.
5+
After pre-loading the data it issues HGETALL, HGET, HKEYS, and HVALS commands."
6+
dbconfig:
7+
configuration-parameters:
8+
save: '""'
9+
preload_tool:
10+
run_image: redislabs/memtier_benchmark:edge
11+
tool: memtier_benchmark
12+
arguments: '"--data-size" "100" --command "HSET __key__ field1 __data__ field2 __data__ field3 __data__ field4 __data__ field5 __data__" --command-key-pattern="P" --key-minimum=1 --key-maximum 10000000 -n 5000 -c 50 -t 4 --hide-histogram'
13+
14+
tested-commands:
15+
- HGETALL
16+
- HKEYS
17+
- HVALS
18+
- HGET
19+
redis-topologies:
20+
- oss-standalone
21+
22+
build-variants:
23+
- gcc:8.5.0-amd64-debian-buster-default
24+
25+
clientconfig:
26+
run_image: redislabs/memtier_benchmark:edge
27+
tool: memtier_benchmark
28+
arguments: '"--data-size" "100" --command "HGETALL __key__" --command-key-pattern="R" --command "HKEYS __key__" --command-key-pattern="R" --command "HVALS __key__" --command-key-pattern="R" --command "HGET __key__ field1" --command-key-pattern="R" --key-minimum=1 --key-maximum 1000000 --test-time 180 -c 50 -t 4 --hide-histogram'
29+
resources:
30+
requests:
31+
cpus: "4"
32+
memory: "2g"
33+
exporter:
34+
redistimeseries:
35+
break_by:
36+
- version
37+
- commit
38+
timemetric: '$."ALL STATS".Runtime."Start time"'
39+
metrics:
40+
- '$."ALL STATS".*."Ops/sec"'
41+
- '$."ALL STATS".*."Latency"'
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
version: 0.4
2+
name: "memtier_benchmark-1Mkeys-list-lpop-rpop-with-100B-values"
3+
description: "Runs memtier_benchmark, for a keyspace length of 1M keys
4+
pre-loading LISTs in which the value has a data size of 100 Bytes.
5+
After pre-loading the data it issues LPOP and RPOP commands."
6+
dbconfig:
7+
configuration-parameters:
8+
save: '""'
9+
preload_tool:
10+
run_image: redislabs/memtier_benchmark:edge
11+
tool: memtier_benchmark
12+
arguments: '"--data-size" "100" --command "LPUSH __key__ __data__" --command-key-pattern="P" --key-minimum=1 --key-maximum 1000000 --test-time 60 -c 50 -t 4 --hide-histogram'
13+
14+
tested-commands:
15+
- LPOP
16+
- RPOP
17+
redis-topologies:
18+
- oss-standalone
19+
20+
build-variants:
21+
- gcc:8.5.0-amd64-debian-buster-default
22+
23+
clientconfig:
24+
run_image: redislabs/memtier_benchmark:edge
25+
tool: memtier_benchmark
26+
arguments: '"--data-size" "100" --command "LPOP __key__" --command-key-pattern="R" --command "RPOP __key__" --command-key-pattern="R" --key-minimum=1 --key-maximum 1000000 --test-time 180 -c 50 -t 4 --hide-histogram'
27+
resources:
28+
requests:
29+
cpus: "4"
30+
memory: "2g"
31+
exporter:
32+
redistimeseries:
33+
break_by:
34+
- version
35+
- commit
36+
timemetric: '$."ALL STATS".Runtime."Start time"'
37+
metrics:
38+
- '$."ALL STATS".*."Ops/sec"'
39+
- '$."ALL STATS".*."Latency"'
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
version: 0.4
2+
name: "memtier_benchmark-1Mkeys-load-list-with-100B-values"
3+
description: "Runs memtier_benchmark, for a keyspace length of 1M keys
4+
loading LISTs in which the value has a data size of 100 Bytes."
5+
dbconfig:
6+
configuration-parameters:
7+
save: '""'
8+
tested-commands:
9+
- LPUSH
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 "LPUSH __key__ __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"'

utils/tests/test_commands.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,9 @@
44

55

66
def test_generate_command_groups():
7-
with open("./redis_benchmarks_specification/setups/topologies/topologies.yml","r") as json_fd:
7+
with open(
8+
"./redis_benchmarks_specification/setups/topologies/topologies.yml", "r"
9+
) as json_fd:
810
commands_json = json.load(json_fd)
911
command_groups = generate_command_groups(commands_json)
10-
assert "server" in command_groups.keys()
12+
assert "server" in command_groups.keys()

utils/tests/test_data/test-suites/memtier_benchmark-1Mkeys-100B-expire-use-case-with-variant.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ dbconfig:
66
configuration-parameters:
77
save: '""'
88
preload_tool:
9-
run_image: redislabs/memtier_benchmark:1.3.0
9+
run_image: redislabs/memtier_benchmark:edge
1010
tool: memtier_benchmark
1111
arguments: '"--command" "SETEX __key__ 360 __value__" "--command-key-pattern" "P" "-c" "5" "-t" "2" "--hide-histogram"'
1212
tested-commands:
@@ -19,7 +19,7 @@ redis-topologies:
1919
build-variants:
2020
- abc
2121
clientconfig:
22-
run_image: redislabs/memtier_benchmark:1.3.0
22+
run_image: redislabs/memtier_benchmark:edge
2323
tool: memtier_benchmark
2424
arguments: '--command "SETEX __key__ 10 __value__" --command-key-pattern="R" --command "SET __key__ __value__" --command-key-pattern="R" --command "GET __key__" --command-key-pattern="R" --command "DEL __key__" --command-key-pattern="R" -c 5 -t 1 --hide-histogram --test-time 10'
2525
resources:

utils/tests/test_data/test-suites/memtier_benchmark-1Mkeys-100B-expire-use-case.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ dbconfig:
66
configuration-parameters:
77
save: '""'
88
preload_tool:
9-
run_image: redislabs/memtier_benchmark:1.3.0
9+
run_image: redislabs/memtier_benchmark:edge
1010
tool: memtier_benchmark
1111
arguments: '"--command" "SETEX __key__ 360 __value__" "--command-key-pattern" "P" "-c" "5" "-t" "2" "--hide-histogram"'
1212
tested-commands:
@@ -19,7 +19,7 @@ redis-topologies:
1919
build-variants:
2020
- gcc:8.5.0-amd64-debian-buster-default
2121
clientconfig:
22-
run_image: redislabs/memtier_benchmark:1.3.0
22+
run_image: redislabs/memtier_benchmark:edge
2323
tool: memtier_benchmark
2424
arguments: '--command "SETEX __key__ 10 __value__" --command-key-pattern="R" --command "SET __key__ __value__" --command-key-pattern="R" --command "GET __key__" --command-key-pattern="R" --command "DEL __key__" --command-key-pattern="R" -c 5 -t 1 --hide-histogram --test-time 10'
2525
resources:

utils/tests/test_self_contained_coordinator.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ def test_extract_client_container_image():
5555
) as yml_file:
5656
benchmark_config = yaml.safe_load(yml_file)
5757
client_container_image = extract_client_container_image(benchmark_config)
58-
assert client_container_image == "redislabs/memtier_benchmark:1.3.0"
58+
assert client_container_image == "redislabs/memtier_benchmark:edge"
5959

6060

6161
def test_extract_client_tool():

0 commit comments

Comments
 (0)