Skip to content

Commit 1d84235

Browse files
Extend runner and compare tool with extra precision metrics, platform-specific comparisons, and improved timeout handling (#305)
* Removed very large benchmarks from SPEC. * Added benchmark, sha, and version metadata to the profile * Removed extra imports * Extending the compare and runner tools * wip * Revamp description and dataset uniqueness * Added memtier_benchmark-playbook-session-storage * Updated the memtier_benchmark-playbook-session-storage benchmark to match https://github.com/upstash/examples/tree/main/examples/ratelimit-with-redis * Added caching and session-storage benchmarks * Fixed SPEC validation. * Fixed formatting * fixed utils/tests/test_runner.py * Fixed scc memtier benchmarks * Added version label on by hash tags if version is present * Fixed the timeseries naming * Fixed ts prefix
1 parent 6750551 commit 1d84235

File tree

250 files changed

+11173
-1452
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

250 files changed

+11173
-1452
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.1.274"
3+
version = "0.1.309"
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"

redis_benchmarks_specification/__cli__/stats.py

Lines changed: 20 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -223,6 +223,9 @@ def generate_stats_cli_command_logic(args, project_name, project_version):
223223
command = command.replace("'", "")
224224
if "-key-pattern" in command:
225225
continue
226+
# Skip command-ratio and other memtier arguments that start with -
227+
if command.startswith("-"):
228+
continue
226229
command = command.lower()
227230
if command not in tested_commands:
228231
tested_commands.append(command)
@@ -238,14 +241,16 @@ def generate_stats_cli_command_logic(args, project_name, project_version):
238241
if command not in tracked_commands_json:
239242
tracked_commands_json[command] = command_json
240243

241-
group = command_json["group"]
242-
if group not in tested_groups:
244+
# Only process if command_json has group information
245+
if "group" in command_json:
246+
group = command_json["group"]
247+
if group not in tested_groups:
243248

244-
tested_groups.append(group)
245-
if group not in tracked_groups:
246-
tracked_groups.append(group)
247-
tracked_groups_hist[group] = 0
248-
tracked_groups_hist[group] = tracked_groups_hist[group] + 1
249+
tested_groups.append(group)
250+
if group not in tracked_groups:
251+
tracked_groups.append(group)
252+
tracked_groups_hist[group] = 0
253+
tracked_groups_hist[group] = tracked_groups_hist[group] + 1
249254

250255
# Calculate total connections
251256
total_connections = clients * threads
@@ -262,12 +267,14 @@ def generate_stats_cli_command_logic(args, project_name, project_version):
262267
data_sizes[data_size] = 0
263268
data_sizes[data_size] = data_sizes[data_size] + 1
264269

265-
if tested_commands != origin_tested_commands:
270+
if sorted(tested_commands) != sorted(origin_tested_commands):
266271
requires_override = True
267272
benchmark_config["tested-commands"] = tested_commands
268273
logging.warn(
269274
"there is a difference between specified test-commands in the yaml (name={}) and the ones we've detected {}!={}".format(
270-
test_name, origin_tested_commands, tested_commands
275+
test_name,
276+
sorted(origin_tested_commands),
277+
sorted(tested_commands),
271278
)
272279
)
273280

@@ -323,12 +330,14 @@ def generate_stats_cli_command_logic(args, project_name, project_version):
323330
)
324331
)
325332

326-
if tested_groups != origin_tested_groups:
333+
if sorted(tested_groups) != sorted(origin_tested_groups):
327334
tested_groups_match_origin = False
328335
benchmark_config["tested-groups"] = tested_groups
329336
logging.warn(
330337
"there is a difference between specified test-groups in the yaml (name={}) and the ones we've detected {}!={}".format(
331-
test_name, origin_tested_groups, tested_groups
338+
test_name,
339+
sorted(origin_tested_groups),
340+
sorted(tested_groups),
332341
)
333342
)
334343

0 commit comments

Comments
 (0)