redis-benchmarks-specification 0.2.31__py3-none-any.whl → 0.2.32__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of redis-benchmarks-specification might be problematic. Click here for more details.

@@ -80,6 +80,22 @@ def trigger_tests_dockerhub_cli_command_logic(args, project_name, project_versio
80
80
  decode_responses=False,
81
81
  )
82
82
  conn.ping()
83
+
84
+ # Extract version from Docker image tag if possible
85
+ # e.g., "redis:7.4.0" -> "7.4.0"
86
+ # e.g., "valkey/valkey:7.2.6-bookworm" -> "7.2.6"
87
+ git_version = None
88
+ if ":" in args.run_image:
89
+ tag = args.run_image.split(":")[-1]
90
+ # Try to extract version number from tag
91
+ # Common patterns: "7.4.0", "7.2.6-bookworm", "latest"
92
+ import re
93
+
94
+ version_match = re.match(r"^(\d+\.\d+\.\d+)", tag)
95
+ if version_match:
96
+ git_version = version_match.group(1)
97
+ logging.info(f"Extracted git_version '{git_version}' from image tag")
98
+
83
99
  testDetails = {}
84
100
  build_stream_fields, result = generate_benchmark_stream_request(
85
101
  args.id,
@@ -96,7 +112,7 @@ def trigger_tests_dockerhub_cli_command_logic(args, project_name, project_versio
96
112
  None,
97
113
  None,
98
114
  None,
99
- None,
115
+ git_version, # Pass extracted version
100
116
  None,
101
117
  None,
102
118
  None,
@@ -1253,15 +1253,11 @@ def process_single_test_comparison(
1253
1253
  if baseline_str != "":
1254
1254
  filters_baseline.append("{}={}".format(by_str_baseline, baseline_str))
1255
1255
  if baseline_deployment_name != "":
1256
- filters_baseline.append(
1257
- "deployment_name={}".format(baseline_deployment_name)
1258
- )
1256
+ filters_baseline.append("deployment_name={}".format(baseline_deployment_name))
1259
1257
  if baseline_github_org != "":
1260
1258
  filters_baseline.append(f"github_org={baseline_github_org}")
1261
1259
  if running_platform_baseline is not None and running_platform_baseline != "":
1262
- filters_baseline.append(
1263
- "running_platform={}".format(running_platform_baseline)
1264
- )
1260
+ filters_baseline.append("running_platform={}".format(running_platform_baseline))
1265
1261
  filters_comparison = [
1266
1262
  "metric={}".format(metric_name),
1267
1263
  "{}={}".format(test_filter, test_name),
@@ -1282,10 +1278,7 @@ def process_single_test_comparison(
1282
1278
  filters_baseline.append("hash==")
1283
1279
  if "hash" not in by_str_comparison:
1284
1280
  filters_comparison.append("hash==")
1285
- if (
1286
- running_platform_comparison is not None
1287
- and running_platform_comparison != ""
1288
- ):
1281
+ if running_platform_comparison is not None and running_platform_comparison != "":
1289
1282
  filters_comparison.append(
1290
1283
  "running_platform={}".format(running_platform_comparison)
1291
1284
  )
@@ -1312,36 +1305,36 @@ def process_single_test_comparison(
1312
1305
 
1313
1306
  # Initialize result dictionary
1314
1307
  result = {
1315
- 'skip_test': False,
1316
- 'no_datapoints_baseline': False,
1317
- 'no_datapoints_comparison': False,
1318
- 'no_datapoints_both': False,
1319
- 'baseline_only': False,
1320
- 'comparison_only': False,
1321
- 'detected_regression': False,
1322
- 'detected_improvement': False,
1323
- 'unstable': False,
1324
- 'should_add_line': False,
1325
- 'line': None,
1326
- 'percentage_change': 0.0,
1327
- 'tested_groups': tested_groups,
1328
- 'tested_commands': tested_commands,
1329
- 'boxplot_data': None,
1308
+ "skip_test": False,
1309
+ "no_datapoints_baseline": False,
1310
+ "no_datapoints_comparison": False,
1311
+ "no_datapoints_both": False,
1312
+ "baseline_only": False,
1313
+ "comparison_only": False,
1314
+ "detected_regression": False,
1315
+ "detected_improvement": False,
1316
+ "unstable": False,
1317
+ "should_add_line": False,
1318
+ "line": None,
1319
+ "percentage_change": 0.0,
1320
+ "tested_groups": tested_groups,
1321
+ "tested_commands": tested_commands,
1322
+ "boxplot_data": None,
1330
1323
  }
1331
1324
 
1332
1325
  if len(baseline_timeseries) == 0:
1333
1326
  logging.warning(
1334
1327
  f"No datapoints for test={test_name} for baseline timeseries {baseline_timeseries}"
1335
1328
  )
1336
- result['no_datapoints_baseline'] = True
1337
- result['no_datapoints_both'] = True
1329
+ result["no_datapoints_baseline"] = True
1330
+ result["no_datapoints_both"] = True
1338
1331
 
1339
1332
  if len(comparison_timeseries) == 0:
1340
1333
  logging.warning(
1341
1334
  f"No datapoints for test={test_name} for comparison timeseries {comparison_timeseries}"
1342
1335
  )
1343
- result['no_datapoints_comparison'] = True
1344
- result['no_datapoints_both'] = True
1336
+ result["no_datapoints_comparison"] = True
1337
+ result["no_datapoints_both"] = True
1345
1338
 
1346
1339
  if len(baseline_timeseries) != 1 and multi_value_baseline is False:
1347
1340
  if verbose:
@@ -1354,7 +1347,7 @@ def process_single_test_comparison(
1354
1347
  logging.warning(
1355
1348
  "\t\tTime-series: {}".format(", ".join(baseline_timeseries))
1356
1349
  )
1357
- result['skip_test'] = True
1350
+ result["skip_test"] = True
1358
1351
  return result
1359
1352
 
1360
1353
  if len(comparison_timeseries) > 1 and multi_value_comparison is False:
@@ -1364,7 +1357,7 @@ def process_single_test_comparison(
1364
1357
  logging.warning(
1365
1358
  "Comparison timeseries {}".format(len(comparison_timeseries))
1366
1359
  )
1367
- result['skip_test'] = True
1360
+ result["skip_test"] = True
1368
1361
  return result
1369
1362
 
1370
1363
  baseline_v = "N/A"
@@ -1383,9 +1376,7 @@ def process_single_test_comparison(
1383
1376
  note = ""
1384
1377
  try:
1385
1378
  for ts_name_baseline in baseline_timeseries:
1386
- datapoints_inner = rts.ts().revrange(
1387
- ts_name_baseline, from_ts_ms, to_ts_ms
1388
- )
1379
+ datapoints_inner = rts.ts().revrange(ts_name_baseline, from_ts_ms, to_ts_ms)
1389
1380
  baseline_datapoints.extend(datapoints_inner)
1390
1381
  (
1391
1382
  baseline_pct_change,
@@ -1440,12 +1431,12 @@ def process_single_test_comparison(
1440
1431
  logging.warning(
1441
1432
  f"Baseline contains datapoints but comparison not for test: {test_name}"
1442
1433
  )
1443
- result['baseline_only'] = True
1434
+ result["baseline_only"] = True
1444
1435
  if comparison_v != "N/A" and baseline_v == "N/A":
1445
1436
  logging.warning(
1446
1437
  f"Comparison contains datapoints but baseline not for test: {test_name}"
1447
1438
  )
1448
- result['comparison_only'] = True
1439
+ result["comparison_only"] = True
1449
1440
  if (
1450
1441
  baseline_v != "N/A"
1451
1442
  and comparison_pct_change != "N/A"
@@ -1455,7 +1446,7 @@ def process_single_test_comparison(
1455
1446
  if comparison_pct_change > 10.0 or baseline_pct_change > 10.0:
1456
1447
  note = "UNSTABLE (very high variance)"
1457
1448
  unstable = True
1458
- result['unstable'] = True
1449
+ result["unstable"] = True
1459
1450
 
1460
1451
  baseline_v_str = prepare_value_str(
1461
1452
  baseline_pct_change,
@@ -1473,9 +1464,7 @@ def process_single_test_comparison(
1473
1464
  )
1474
1465
 
1475
1466
  if metric_mode == "higher-better":
1476
- percentage_change = (
1477
- float(comparison_v) / float(baseline_v) - 1
1478
- ) * 100.0
1467
+ percentage_change = (float(comparison_v) / float(baseline_v) - 1) * 100.0
1479
1468
  else:
1480
1469
  # lower-better
1481
1470
  percentage_change = (
@@ -1483,13 +1472,13 @@ def process_single_test_comparison(
1483
1472
  ) * 100.0
1484
1473
 
1485
1474
  # Collect data for box plot
1486
- result['boxplot_data'] = (test_name, percentage_change)
1475
+ result["boxplot_data"] = (test_name, percentage_change)
1487
1476
  else:
1488
1477
  logging.warn(
1489
1478
  f"Missing data for test {test_name}. baseline_v={baseline_v} (pct_change={baseline_pct_change}), comparison_v={comparison_v} (pct_change={comparison_pct_change}) "
1490
1479
  )
1491
1480
 
1492
- result['percentage_change'] = percentage_change
1481
+ result["percentage_change"] = percentage_change
1493
1482
 
1494
1483
  if baseline_v != "N/A" or comparison_v != "N/A":
1495
1484
  detected_regression = False
@@ -1545,8 +1534,8 @@ def process_single_test_comparison(
1545
1534
  if simplify_table is False:
1546
1535
  note = note + " No Change"
1547
1536
 
1548
- result['detected_regression'] = detected_regression
1549
- result['detected_improvement'] = detected_improvement
1537
+ result["detected_regression"] = detected_regression
1538
+ result["detected_improvement"] = detected_improvement
1550
1539
 
1551
1540
  line = get_line(
1552
1541
  baseline_v_str,
@@ -1555,12 +1544,12 @@ def process_single_test_comparison(
1555
1544
  percentage_change,
1556
1545
  test_link,
1557
1546
  )
1558
- result['line'] = line
1547
+ result["line"] = line
1559
1548
  else:
1560
1549
  logging.warning(
1561
1550
  "There were no datapoints both for baseline and comparison for test: {test_name}"
1562
1551
  )
1563
- result['no_datapoints_both'] = True
1552
+ result["no_datapoints_both"] = True
1564
1553
 
1565
1554
  return result
1566
1555
 
@@ -1676,49 +1665,49 @@ def from_rts_to_regression_table(
1676
1665
  # Second loop: Process all collected results
1677
1666
  for test_name, result in test_results:
1678
1667
  # Handle the results from the extracted function
1679
- if result['skip_test']:
1668
+ if result["skip_test"]:
1680
1669
  continue
1681
1670
 
1682
- if result['no_datapoints_baseline']:
1671
+ if result["no_datapoints_baseline"]:
1683
1672
  no_datapoints_baseline_list.append(test_name)
1684
1673
  if test_name not in no_datapoints_list:
1685
1674
  no_datapoints_list.append(test_name)
1686
1675
 
1687
- if result['no_datapoints_comparison']:
1676
+ if result["no_datapoints_comparison"]:
1688
1677
  no_datapoints_comparison_list.append(test_name)
1689
1678
  if test_name not in no_datapoints_list:
1690
1679
  no_datapoints_list.append(test_name)
1691
1680
 
1692
- if result['baseline_only']:
1681
+ if result["baseline_only"]:
1693
1682
  baseline_only_list.append(test_name)
1694
1683
 
1695
- if result['comparison_only']:
1684
+ if result["comparison_only"]:
1696
1685
  comparison_only_list.append(test_name)
1697
1686
 
1698
- if result['unstable']:
1687
+ if result["unstable"]:
1699
1688
  unstable_list.append([test_name, "n/a"])
1700
1689
 
1701
- if result['boxplot_data']:
1702
- boxplot_data.append(result['boxplot_data'])
1690
+ if result["boxplot_data"]:
1691
+ boxplot_data.append(result["boxplot_data"])
1703
1692
 
1704
1693
  # Handle group and command changes
1705
- for test_group in result['tested_groups']:
1694
+ for test_group in result["tested_groups"]:
1706
1695
  if test_group not in group_change:
1707
1696
  group_change[test_group] = []
1708
- group_change[test_group].append(result['percentage_change'])
1697
+ group_change[test_group].append(result["percentage_change"])
1709
1698
 
1710
- for test_command in result['tested_commands']:
1699
+ for test_command in result["tested_commands"]:
1711
1700
  if test_command not in command_change:
1712
1701
  command_change[test_command] = []
1713
- command_change[test_command].append(result['percentage_change'])
1702
+ command_change[test_command].append(result["percentage_change"])
1714
1703
 
1715
1704
  # Handle regression/improvement detection and table updates
1716
- if result['line'] is not None:
1717
- detected_regression = result['detected_regression']
1718
- detected_improvement = result['detected_improvement']
1719
- unstable = result['unstable']
1720
- line = result['line']
1721
- percentage_change = result['percentage_change']
1705
+ if result["line"] is not None:
1706
+ detected_regression = result["detected_regression"]
1707
+ detected_improvement = result["detected_improvement"]
1708
+ unstable = result["unstable"]
1709
+ line = result["line"]
1710
+ percentage_change = result["percentage_change"]
1722
1711
 
1723
1712
  if detected_regression:
1724
1713
  total_regressions = total_regressions + 1
@@ -1752,7 +1741,7 @@ def from_rts_to_regression_table(
1752
1741
  if should_add_line:
1753
1742
  total_comparison_points = total_comparison_points + 1
1754
1743
  table_full.append(line)
1755
- elif result['no_datapoints_both']:
1744
+ elif result["no_datapoints_both"]:
1756
1745
  if test_name not in no_datapoints_list:
1757
1746
  no_datapoints_list.append(test_name)
1758
1747
  logging.warning(
@@ -175,13 +175,20 @@ def validate_benchmark_metrics(
175
175
  Args:
176
176
  results_dict: Dictionary containing benchmark results
177
177
  test_name: Name of the test being validated
178
- benchmark_config: Benchmark configuration (unused, for compatibility)
178
+ benchmark_config: Benchmark configuration (optional, contains tested-commands)
179
179
  default_metrics: Default metrics configuration (unused, for compatibility)
180
180
 
181
181
  Returns:
182
182
  tuple: (is_valid, error_message)
183
183
  """
184
184
  try:
185
+ # Get tested commands from config if available
186
+ tested_commands = []
187
+ if benchmark_config and "tested-commands" in benchmark_config:
188
+ tested_commands = [
189
+ cmd.lower() for cmd in benchmark_config["tested-commands"]
190
+ ]
191
+
185
192
  # Define validation rules
186
193
  throughput_patterns = [
187
194
  "ops/sec",
@@ -219,6 +226,29 @@ def validate_benchmark_metrics(
219
226
  ):
220
227
  return
221
228
 
229
+ # Skip operation-specific metrics for operations not being tested
230
+ # For example, skip Gets.Ops/sec if only SET commands are tested
231
+ if tested_commands:
232
+ skip_metric = False
233
+ operation_types = [
234
+ "gets",
235
+ "sets",
236
+ "hgets",
237
+ "hsets",
238
+ "lpush",
239
+ "rpush",
240
+ "sadd",
241
+ ]
242
+ for op_type in operation_types:
243
+ if (
244
+ op_type in metric_path_lower
245
+ and op_type not in tested_commands
246
+ ):
247
+ skip_metric = True
248
+ break
249
+ if skip_metric:
250
+ return
251
+
222
252
  # Check throughput metrics
223
253
  for pattern in throughput_patterns:
224
254
  if pattern in metric_path_lower:
@@ -324,6 +354,18 @@ def calculate_process_timeout(command_str, buffer_timeout):
324
354
  int: Timeout in seconds
325
355
  """
326
356
  default_timeout = 300 # 5 minutes default
357
+ run_count = 1
358
+ if "run-count" in command_str:
359
+ # Try to extract test time and add buffer
360
+ # Handle both --test-time (memtier) and -test-time (pubsub-sub-bench)
361
+ run_count_match = re.search(r"--?run-count[=\s]+(\d+)", command_str)
362
+ if run_count_match:
363
+ run_count = int(run_count_match.group(1))
364
+ logging.info(f"Detected run count of: {run_count}")
365
+ run_count_match = re.search(r"-?x[=\s]+(\d+)", command_str)
366
+ if run_count_match:
367
+ run_count = int(run_count_match.group(1))
368
+ logging.info(f"Detected run count (from -x) of: {run_count}")
327
369
 
328
370
  if "test-time" in command_str:
329
371
  # Try to extract test time and add buffer
@@ -331,9 +373,9 @@ def calculate_process_timeout(command_str, buffer_timeout):
331
373
  test_time_match = re.search(r"--?test-time[=\s]+(\d+)", command_str)
332
374
  if test_time_match:
333
375
  test_time = int(test_time_match.group(1))
334
- timeout = test_time + buffer_timeout
376
+ timeout = (test_time + buffer_timeout) * run_count
335
377
  logging.info(
336
- f"Set process timeout to {timeout}s (test-time: {test_time}s + {buffer_timeout}s buffer)"
378
+ f"Set process timeout to {timeout}s (test-time: {test_time}s + {buffer_timeout}s buffer) x {run_count} runs)"
337
379
  )
338
380
  return timeout
339
381
 
@@ -1560,7 +1602,9 @@ def process_self_contained_coordinator_stream(
1560
1602
  logging.info(f"Using override topology: {args.override_topology}")
1561
1603
  else:
1562
1604
  benchmark_topologies = benchmark_config["redis-topologies"]
1563
- logging.info(f"Running for a total of {len(benchmark_topologies)} topologies: {benchmark_topologies}")
1605
+ logging.info(
1606
+ f"Running for a total of {len(benchmark_topologies)} topologies: {benchmark_topologies}"
1607
+ )
1564
1608
 
1565
1609
  # Check if user requested exit via Ctrl+C
1566
1610
  if _exit_requested:
@@ -2680,13 +2724,20 @@ def process_self_contained_coordinator_stream(
2680
2724
  if not success:
2681
2725
  logging.error(f"Memtier benchmark failed: {stderr}")
2682
2726
  # Clean up database after failure (timeout or error)
2683
- if args.flushall_on_every_test_end or args.flushall_on_every_test_start:
2684
- logging.warning("Benchmark failed - cleaning up database with FLUSHALL")
2727
+ if (
2728
+ args.flushall_on_every_test_end
2729
+ or args.flushall_on_every_test_start
2730
+ ):
2731
+ logging.warning(
2732
+ "Benchmark failed - cleaning up database with FLUSHALL"
2733
+ )
2685
2734
  try:
2686
2735
  for r in redis_conns:
2687
2736
  r.flushall()
2688
2737
  except Exception as e:
2689
- logging.error(f"FLUSHALL failed after benchmark failure: {e}")
2738
+ logging.error(
2739
+ f"FLUSHALL failed after benchmark failure: {e}"
2740
+ )
2690
2741
  # Continue with the test but log the failure
2691
2742
  client_container_stdout = f"ERROR: {stderr}"
2692
2743
 
@@ -3033,8 +3084,13 @@ def process_self_contained_coordinator_stream(
3033
3084
  test_result = False
3034
3085
 
3035
3086
  # Clean up database after exception to prevent contamination of next test
3036
- if args.flushall_on_every_test_end or args.flushall_on_every_test_start:
3037
- logging.warning("Exception caught - cleaning up database with FLUSHALL")
3087
+ if (
3088
+ args.flushall_on_every_test_end
3089
+ or args.flushall_on_every_test_start
3090
+ ):
3091
+ logging.warning(
3092
+ "Exception caught - cleaning up database with FLUSHALL"
3093
+ )
3038
3094
  try:
3039
3095
  for r in redis_conns:
3040
3096
  r.flushall()
@@ -12,7 +12,7 @@ dbconfig:
12
12
  tool: memtier_benchmark
13
13
  arguments: '"--data-size" "100" "--ratio" "1:0" "--key-pattern" "P:P" "-c" "50"
14
14
  "-t" "2" "--hide-histogram" "--key-minimum" "1" "--key-maximum" "1000000" -n
15
- allkeys" --pipeline 50'
15
+ "allkeys" --pipeline 50'
16
16
  resources:
17
17
  requests:
18
18
  memory: 1g
@@ -34,7 +34,6 @@ tested-commands:
34
34
  - bitcount
35
35
  - eval
36
36
  tested-groups:
37
- - bitmap
38
37
  - scripting
39
38
 
40
39
  redis-topologies:
@@ -35,6 +35,7 @@ dbconfig:
35
35
  tested-commands:
36
36
  - smembers
37
37
  - sdiff
38
+ - sunion
38
39
  redis-topologies:
39
40
  - oss-standalone
40
41
  build-variants:
@@ -35,6 +35,7 @@ dbconfig:
35
35
  tested-commands:
36
36
  - smembers
37
37
  - sdiff
38
+ - sunion
38
39
  redis-topologies:
39
40
  - oss-standalone
40
41
  build-variants:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: redis-benchmarks-specification
3
- Version: 0.2.31
3
+ Version: 0.2.32
4
4
  Summary: 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.
5
5
  License-File: LICENSE
6
6
  Author: filipecosta90
@@ -8,7 +8,7 @@ redis_benchmarks_specification/__builder__/builder.py,sha256=vG6Cp0SAAgvZt9zyjTQ
8
8
  redis_benchmarks_specification/__builder__/schema.py,sha256=1wcmyVJBcWrBvK58pghN9NCoWLCO3BzPsmdKWYfkVog,584
9
9
  redis_benchmarks_specification/__cli__/__init__.py,sha256=l-G1z-t6twUgi8QLueqoTQLvJmv3hJoEYskGm6H7L6M,83
10
10
  redis_benchmarks_specification/__cli__/args.py,sha256=y_FHtkjhRKsU532sutlXPeXgtFZu7KGOp7lTSi1C5uc,7427
11
- redis_benchmarks_specification/__cli__/cli.py,sha256=0S3Lwci-oxpPJMekPIFeG5XJiSF53rpa5sRnS-aAZnA,22416
11
+ redis_benchmarks_specification/__cli__/cli.py,sha256=Lurp9p80pk7CJLgJfzN8s54dkBR33MjRTfv8sJEoYOU,23042
12
12
  redis_benchmarks_specification/__cli__/stats.py,sha256=r9JIfwGCSR3maozYbDZfZrkthNFQSs0xIymS86yZ6Iw,55574
13
13
  redis_benchmarks_specification/__common__/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
14
14
  redis_benchmarks_specification/__common__/builder_schema.py,sha256=kfDpRIk7NkJrb5qj9jzsBhLVNO7K_W2Clumj4pxrkG8,5938
@@ -21,12 +21,12 @@ redis_benchmarks_specification/__common__/suppress_warnings.py,sha256=xpOjJ_piGY
21
21
  redis_benchmarks_specification/__common__/timeseries.py,sha256=kHpkpNwZgWpjCh_Fg0wFcxNRMTb5SoSNwd_UHUCNVhc,54283
22
22
  redis_benchmarks_specification/__compare__/__init__.py,sha256=DtBXRp0Q01XgCFmY-1OIePMyyYihVNAjZ1Y8zwqSDN0,101
23
23
  redis_benchmarks_specification/__compare__/args.py,sha256=CNtA7pI9CJDTBJPGL2pNVfis7VDdxLautwRyka7oUCI,8911
24
- redis_benchmarks_specification/__compare__/compare.py,sha256=7fawmGqLCz5buCqfKRkM-wgLUUxNkFOITxhpDKrVdos,87802
24
+ redis_benchmarks_specification/__compare__/compare.py,sha256=uMxpbAFNUubnhAdWIpgFF8ns-VghCkL9FS_d0Uz2m6A,87674
25
25
  redis_benchmarks_specification/__init__.py,sha256=YQIEx2sLPPA0JR9OuCuMNMNtm-f_gqDKgzvNJnkGNKY,491
26
26
  redis_benchmarks_specification/__runner__/__init__.py,sha256=l-G1z-t6twUgi8QLueqoTQLvJmv3hJoEYskGm6H7L6M,83
27
27
  redis_benchmarks_specification/__runner__/args.py,sha256=i4_eM-lfCSqOWxxDh0_g9d5YR4fAM7M08CSnsrqUaSs,11548
28
28
  redis_benchmarks_specification/__runner__/remote_profiling.py,sha256=R7obNQju8mmY9oKkcndjI4aAuxi84OCLhDSqqaYu1SU,18610
29
- redis_benchmarks_specification/__runner__/runner.py,sha256=yAGh00WD_DI2YvHAVbbiulzhwyY02L11fYiLXSEE3Sg,157684
29
+ redis_benchmarks_specification/__runner__/runner.py,sha256=zBJyWb_wxG3xhk3RPl1rNmVZO1E-3ugRY2GkZidPrY8,159974
30
30
  redis_benchmarks_specification/__self_contained_coordinator__/__init__.py,sha256=l-G1z-t6twUgi8QLueqoTQLvJmv3hJoEYskGm6H7L6M,83
31
31
  redis_benchmarks_specification/__self_contained_coordinator__/args.py,sha256=2nTD4g4V1NjMRjRuDvHaoub5sjcav0GCnxv2HFiXWKc,7329
32
32
  redis_benchmarks_specification/__self_contained_coordinator__/artifacts.py,sha256=OVHqJzDgeSSRfUSiKp1ZTAVv14PvSbk-5yJsAAoUfpw,936
@@ -161,7 +161,7 @@ redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mixed
161
161
  redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-512B-pipeline-10.yml,sha256=Sp3-50GmqaKILmgMuh3Tpm_d_06zs3E-tgXCY677zRE,1358
162
162
  redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-512B.yml,sha256=4Fye7vAc17RZh7VlPBcmkeMmjnolQBmjXLnd7z9wU0E,1312
163
163
  redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-mixed-50-50-set-get-with-expiration-240B-400_conns.yml,sha256=1YIVXSLRytR9-QIayu6jCxnFd1KJlY8o0rwJYT28Hx8,1549
164
- redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-set-with-ex-100B-pipeline-10.yml,sha256=5C2S9LpQDH-_IpjWwYH9tCnK0jvm9pZdlnyGmJMA9gc,1300
164
+ redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-set-with-ex-100B-pipeline-10.yml,sha256=r-krjHZpS0Pgvv1pgKNy9YeFleC8aUKzXOlSkKsB3f4,1301
165
165
  redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-setex-100B-pipeline-10.yml,sha256=NE5oujnTwuHINrlvHBjMEFSKY_iwKimAvq4twnYfmXI,1297
166
166
  redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-setget200c-1KiB-pipeline-1.yml,sha256=C-wDrzi7bSUr9v1q3-nhuM_GdTQ_IQv35ORjZzaZqtY,1366
167
167
  redis_benchmarks_specification/test-suites/memtier_benchmark-1Mkeys-string-setget200c-1KiB-pipeline-10.yml,sha256=Qt6ReUnzFmnfesvLx3h-vFPwpWoisIjW7y0e9acDnIA,1368
@@ -282,9 +282,9 @@ redis_benchmarks_specification/test-suites/memtier_benchmark-nokeys-server-time-
282
282
  redis_benchmarks_specification/test-suites/memtier_benchmark-playbook-leaderboard-top-10.yml,sha256=HkDqWJCanVVk6ElqUDnY6tveDX4umcjivjsbHz5FnQ0,2319
283
283
  redis_benchmarks_specification/test-suites/memtier_benchmark-playbook-leaderboard-top-100.yml,sha256=76afE-sX21tTc84Zq-8iSra3SMbQG0Jb67eVxOOWuHM,9488
284
284
  redis_benchmarks_specification/test-suites/memtier_benchmark-playbook-leaderboard-top-1000.yml,sha256=82j3OuT-0_0HNVbGpd0sKxSRwBf1Fc1C-Yn4TT0s3zQ,76785
285
- redis_benchmarks_specification/test-suites/memtier_benchmark-playbook-rate-limiting-lua-100k-sessions.yml,sha256=z2APnBAH_leRRYDQXjA-5gFwScNgKT4mVyBh5wLb3SU,1636
286
- redis_benchmarks_specification/test-suites/memtier_benchmark-playbook-realtime-analytics-membership-pipeline-10.yml,sha256=uh0J81Y27_YnQfDqzaTpYtJNvIdRFJtYsBUmXGTBrl4,2842
287
- redis_benchmarks_specification/test-suites/memtier_benchmark-playbook-realtime-analytics-membership.yml,sha256=y_q6GWbodKpVA48o1a1frqF0bU52utIOnjIjuiQt0qk,2816
285
+ redis_benchmarks_specification/test-suites/memtier_benchmark-playbook-rate-limiting-lua-100k-sessions.yml,sha256=rm88MxgjinMgDFEMz27K1Pnos6jeyxj7qu5ltxag5HA,1627
286
+ redis_benchmarks_specification/test-suites/memtier_benchmark-playbook-realtime-analytics-membership-pipeline-10.yml,sha256=4IuY59BrrhqZ8lX9r0jdrRz_cvZJbyYLgb34f5sfAEk,2851
287
+ redis_benchmarks_specification/test-suites/memtier_benchmark-playbook-realtime-analytics-membership.yml,sha256=l_W4Bixm7M15Uk8vlo_Ri_uLJa6n5_JEfTzpJ4q7gtE,2825
288
288
  redis_benchmarks_specification/test-suites/memtier_benchmark-playbook-session-caching-hash-100k-sessions.yml,sha256=H98DrXlq-lRhoe1M7vehfDBbUdZ7WwWroriTpklx-PI,3646
289
289
  redis_benchmarks_specification/test-suites/memtier_benchmark-playbook-session-caching-json-100k-sessions.yml,sha256=MDvxjvFvIv_vnbeon8AEOd0XNouqGNhwer3JN_Vzi9c,3858
290
290
  redis_benchmarks_specification/test-suites/memtier_benchmark-playbook-session-caching-string-100k-sessions.yml,sha256=yVrHQxMp2xzSpZ5Vx7GCTqhwbjMB-RoBf1T20qz9puE,3909
@@ -296,8 +296,8 @@ redis_benchmarks_specification/test-suites/memtier_benchmark-stream-10M-entries-
296
296
  redis_benchmarks_specification/test-suites/memtier_benchmark-stream-concurrent-xadd-xreadgroup-70-30.yml,sha256=M707Z-uJ-xDiNfkcIjtJWZecSRepOQDbTy-CUStsbqM,1964
297
297
  redis_benchmarks_specification/test-suites/template.txt,sha256=ezqGiRPOvuSDO0iG7GEf-AGXNfHbgXI89_G0RUEzL88,481
298
298
  redis_benchmarks_specification/vector-search-test-suites/vector_db_benchmark_test.yml,sha256=PD7ow-k4Ll2BkhEC3aIqiaCZt8Hc4aJIp96Lw3J3mcI,791
299
- redis_benchmarks_specification-0.2.31.dist-info/METADATA,sha256=OmqKpV0_Tb4b5VBaoNbtyFa0J8plWsf8Kl9xrO3MuKI,22891
300
- redis_benchmarks_specification-0.2.31.dist-info/WHEEL,sha256=zp0Cn7JsFoX2ATtOhtaFYIiE2rmFAD4OcMhtUki8W3U,88
301
- redis_benchmarks_specification-0.2.31.dist-info/entry_points.txt,sha256=x5WBXCZsnDRTZxV7SBGmC65L2k-ygdDOxV8vuKN00Nk,715
302
- redis_benchmarks_specification-0.2.31.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
303
- redis_benchmarks_specification-0.2.31.dist-info/RECORD,,
299
+ redis_benchmarks_specification-0.2.32.dist-info/METADATA,sha256=8ujEyO4xCHaC5y3d5zfeyrsKAvHfxAVQQSrfe22KaPE,22891
300
+ redis_benchmarks_specification-0.2.32.dist-info/WHEEL,sha256=zp0Cn7JsFoX2ATtOhtaFYIiE2rmFAD4OcMhtUki8W3U,88
301
+ redis_benchmarks_specification-0.2.32.dist-info/entry_points.txt,sha256=x5WBXCZsnDRTZxV7SBGmC65L2k-ygdDOxV8vuKN00Nk,715
302
+ redis_benchmarks_specification-0.2.32.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
303
+ redis_benchmarks_specification-0.2.32.dist-info/RECORD,,