Skip to content

Commit fbcba80

Browse files
authored
Add XREADGROUP+XADD benchmarks with COUNT 100 variations (#356)
* Add XREADGROUP+XADD benchmarks with COUNT 100 variations - Added stream benchmark with XREADGROUP COUNT 100 CLAIM 100 for message claiming - Added stream benchmark with standard XREADGROUP COUNT 100 - Both use 70-30 XADD-XREADGROUP ratio with 1K consumers - Pre-loaded with 500K stream entries for concurrent processing tests * Bumping version from 0.2.60 to 0.2.61 * Refactor stream benchmarks to use 100:1 XADD:XREADGROUP ratio - Rename benchmark files from 70-30 to 100-1 ratio naming convention - Update command ratios from 70% XADD / 30% XREADGROUP to 100:1 ratio - Switch from fixed operation count (-n 1000) to time-based testing (--test-time 120) - Adjust descriptions to reflect new ratio and expected stream size calculations The 100:1 ratio ensures the stream always contains elements during benchmark execution, preventing consumer starvation and providing more consistent performance measurements. The previous 70-30 ratio could lead to periods where consumers had no messages to process, affecting benchmark reliability. * Improve stream benchmark descriptions for clarity - Add reference to "COUNT 100" so it is clear that we're reading 100 entries for each XREADGROUP command
1 parent e4e0b5b commit fbcba80

File tree

3 files changed

+99
-1
lines changed

3 files changed

+99
-1
lines changed

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[tool.poetry]
22
name = "redis-benchmarks-specification"
3-
version = "0.2.60"
3+
version = "0.2.61"
44
description = "The Redis benchmarks specification describes the cross-language/tools requirements and expectations to foster performance and observability standards around redis related technologies. Members from both industry and academia, including organizations and individuals are encouraged to contribute."
55
authors = ["filipecosta90 <filipecosta.90@gmail.com>","Redis Performance Group <performance@redis.com>"]
66
readme = "Readme.md"
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
version: 0.4
2+
name: memtier_benchmark-stream-concurrent-xadd-xreadgroup-100-1-1k-consumers-claim-count100
3+
description:
4+
Starting with a pre-loaded stream of 500K entries, the benchmark tests concurrent stream operations with a consumer group for distributed processing.
5+
For each XREADGROUP command, 100 XADD commands are executed.
6+
500K initial entries plus 100 * "XADD" - 1 * "XREADGROUP COUNT 100" ≈ 500K entries left in the stream at the end.
7+
dbconfig:
8+
configuration-parameters:
9+
save: '""'
10+
check:
11+
keyspacelen: 1
12+
preload_tool:
13+
run_image: redislabs/memtier_benchmark:edge
14+
tool: memtier_benchmark
15+
arguments: '"--data-size" "100" --command "XADD stream-key * field __data__" --command-key-pattern="P" -n 2500 -c 50 -t 4 --hide-histogram'
16+
init_commands:
17+
- XGROUP CREATE stream-key producer-consumer-group 0 MKSTREAM
18+
resources:
19+
requests:
20+
memory: 4g
21+
dataset_name: stream-concurrent-producer-consumer-500k-seed
22+
dataset_description: This dataset starts with 500K pre-loaded stream entries, then tests concurrent stream operations with a consumer group for distributed processing.
23+
tested-commands:
24+
- xadd
25+
- xreadgroup
26+
redis-topologies:
27+
- oss-standalone
28+
build-variants:
29+
- gcc:15.2.0-amd64-debian-bookworm-default
30+
- gcc:15.2.0-arm64-debian-bookworm-default
31+
- dockerhub
32+
clientconfig:
33+
run_image: redislabs/memtier_benchmark:edge
34+
tool: memtier_benchmark
35+
arguments: >
36+
--data-size 100
37+
--command="XADD stream-key * field __data__" --command-key-pattern="P" --command-ratio=100
38+
--command="XREADGROUP GROUP producer-consumer-group __key__ COUNT 100 CLAIM 100 STREAMS stream-key >" --command-key-pattern="P" --command-ratio=1
39+
--hide-histogram --key-minimum 1 --key-maximum 1000
40+
--test-time 120
41+
-c 50
42+
-t 4
43+
resources:
44+
requests:
45+
cpus: "4"
46+
memory: 2g
47+
tested-groups:
48+
- stream
49+
priority: 95
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
version: 0.4
2+
name: memtier_benchmark-stream-concurrent-xadd-xreadgroup-100-1-1k-consumers-count100
3+
description:
4+
Starting with a pre-loaded stream of 500K entries, the benchmark tests concurrent stream operations with a consumer group for distributed processing.
5+
For each XREADGROUP command, 100 XADD commands are executed.
6+
500K initial entries plus 100 * "XADD" - 1 * "XREADGROUP COUNT 100" ≈ 500K entries left in the stream at the end.
7+
dbconfig:
8+
configuration-parameters:
9+
save: '""'
10+
check:
11+
keyspacelen: 1
12+
preload_tool:
13+
run_image: redislabs/memtier_benchmark:edge
14+
tool: memtier_benchmark
15+
arguments: '"--data-size" "100" --command "XADD stream-key * field __data__" --command-key-pattern="P" -n 2500 -c 50 -t 4 --hide-histogram'
16+
init_commands:
17+
- XGROUP CREATE stream-key producer-consumer-group 0 MKSTREAM
18+
resources:
19+
requests:
20+
memory: 4g
21+
dataset_name: stream-concurrent-producer-consumer-500k-seed
22+
dataset_description: This dataset starts with 500K pre-loaded stream entries, then tests concurrent stream operations with a consumer group for distributed processing.
23+
tested-commands:
24+
- xadd
25+
- xreadgroup
26+
redis-topologies:
27+
- oss-standalone
28+
build-variants:
29+
- gcc:15.2.0-amd64-debian-bookworm-default
30+
- gcc:15.2.0-arm64-debian-bookworm-default
31+
- dockerhub
32+
clientconfig:
33+
run_image: redislabs/memtier_benchmark:edge
34+
tool: memtier_benchmark
35+
arguments: >
36+
--data-size 100
37+
--command="XADD stream-key * field __data__" --command-key-pattern="P" --command-ratio=100
38+
--command="XREADGROUP GROUP producer-consumer-group __key__ COUNT 100 STREAMS stream-key >" --command-key-pattern="P" --command-ratio=1
39+
--hide-histogram --key-minimum 1 --key-maximum 1000
40+
--test-time 120
41+
-c 50
42+
-t 4
43+
resources:
44+
requests:
45+
cpus: "4"
46+
memory: 2g
47+
tested-groups:
48+
- stream
49+
priority: 95

0 commit comments

Comments
 (0)