redis-benchmarks-specification 0.1.277__py3-none-any.whl → 0.1.280__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.

@@ -202,6 +202,12 @@ def create_client_runner_args(project_name):
202
202
  action="store_true",
203
203
  help="Assume benchmarking tool (e.g. memtier benchmark) is installed locally and execute it without using a docker container.",
204
204
  )
205
+ parser.add_argument(
206
+ "--memtier-bin-path",
207
+ type=str,
208
+ default="memtier_benchmark",
209
+ help="Path to memtier_benchmark binary when using --benchmark_local_install. Default is 'memtier_benchmark' (assumes it's in PATH).",
210
+ )
205
211
  parser.add_argument(
206
212
  "--override-test-runs",
207
213
  default=1,
@@ -240,13 +240,19 @@ def run_multiple_clients(
240
240
 
241
241
  # Prepare benchmark command for this client
242
242
  if "memtier_benchmark" in client_tool:
243
+ # Set benchmark path based on local install option
244
+ if args.benchmark_local_install:
245
+ full_benchmark_path = getattr(args, 'memtier_bin_path', 'memtier_benchmark')
246
+ else:
247
+ full_benchmark_path = f"/usr/local/bin/{client_tool}"
248
+
243
249
  (
244
250
  _,
245
251
  benchmark_command_str,
246
252
  arbitrary_command,
247
253
  ) = prepare_memtier_benchmark_parameters(
248
254
  client_config,
249
- client_tool,
255
+ full_benchmark_path,
250
256
  port,
251
257
  host,
252
258
  password,
@@ -349,8 +355,6 @@ def run_multiple_clients(
349
355
  )
350
356
 
351
357
  # Start container (detached)
352
- import os
353
-
354
358
  # Set working directory based on tool
355
359
  working_dir = benchmark_tool_workdir
356
360
  if "vector-db-benchmark" in client_tool:
@@ -483,8 +487,6 @@ def run_multiple_clients(
483
487
 
484
488
  if successful_results:
485
489
  # Try to read and aggregate JSON output files
486
- import json
487
- import os
488
490
 
489
491
  aggregated_json = {}
490
492
  memtier_json = None
@@ -1206,7 +1208,9 @@ def process_self_contained_coordinator_stream(
1206
1208
  else:
1207
1209
  for conn in redis_conns:
1208
1210
  maxmemory = maxmemory + get_maxmemory(conn)
1209
- if benchmark_required_memory > maxmemory:
1211
+
1212
+ # Only perform memory check if we have valid maxmemory information
1213
+ if maxmemory > 0 and benchmark_required_memory > maxmemory:
1210
1214
  logging.warning(
1211
1215
  "Skipping test {} given maxmemory of server is bellow the benchmark required memory: {} < {}".format(
1212
1216
  test_name, maxmemory, benchmark_required_memory
@@ -1218,6 +1222,12 @@ def process_self_contained_coordinator_stream(
1218
1222
  benchmark_tool_global=benchmark_tool_global,
1219
1223
  )
1220
1224
  continue
1225
+ elif maxmemory == 0 and benchmark_required_memory > 0:
1226
+ logging.warning(
1227
+ "Cannot enforce memory checks for test {} - maxmemory information unavailable. Proceeding with test.".format(
1228
+ test_name
1229
+ )
1230
+ )
1221
1231
 
1222
1232
  reset_commandstats(redis_conns)
1223
1233
 
@@ -1341,6 +1351,7 @@ def process_self_contained_coordinator_stream(
1341
1351
  oss_cluster_api_enabled,
1342
1352
  unix_socket,
1343
1353
  buffer_timeout,
1354
+ args,
1344
1355
  )
1345
1356
  if res is False:
1346
1357
  logging.warning(
@@ -1384,7 +1395,12 @@ def process_self_contained_coordinator_stream(
1384
1395
  # backwards compatible
1385
1396
  if benchmark_tool is None:
1386
1397
  benchmark_tool = "redis-benchmark"
1387
- full_benchmark_path = f"/usr/local/bin/{benchmark_tool}"
1398
+
1399
+ # Set benchmark path based on local install option
1400
+ if args.benchmark_local_install and "memtier_benchmark" in benchmark_tool:
1401
+ full_benchmark_path = getattr(args, 'memtier_bin_path', 'memtier_benchmark')
1402
+ else:
1403
+ full_benchmark_path = f"/usr/local/bin/{benchmark_tool}"
1388
1404
 
1389
1405
  # setup the benchmark
1390
1406
  (
@@ -1647,8 +1663,6 @@ def process_self_contained_coordinator_stream(
1647
1663
  )
1648
1664
 
1649
1665
  # Use explicit container management for single client
1650
- import os
1651
-
1652
1666
  # Set working directory based on tool
1653
1667
  working_dir = benchmark_tool_workdir
1654
1668
  if "vector-db-benchmark" in benchmark_tool:
@@ -1821,7 +1835,6 @@ def process_self_contained_coordinator_stream(
1821
1835
  )
1822
1836
  elif "vector-db-benchmark" in benchmark_tool:
1823
1837
  # For vector-db-benchmark, look for summary JSON file
1824
- import os
1825
1838
  summary_files = [f for f in os.listdir(temporary_dir_client) if f.endswith("-summary.json")]
1826
1839
  if summary_files:
1827
1840
  full_result_path = os.path.join(temporary_dir_client, summary_files[0])
@@ -1973,9 +1986,16 @@ def process_self_contained_coordinator_stream(
1973
1986
 
1974
1987
 
1975
1988
  def get_maxmemory(r):
1976
- maxmemory = int(r.info("memory")["maxmemory"])
1989
+ memory_info = r.info("memory")
1990
+
1991
+ # Check if maxmemory key exists in Redis memory info
1992
+ if "maxmemory" not in memory_info:
1993
+ logging.warning("maxmemory not present in Redis memory info. Cannot enforce memory checks.")
1994
+ return 0
1995
+
1996
+ maxmemory = int(memory_info["maxmemory"])
1977
1997
  if maxmemory == 0:
1978
- total_system_memory = int(r.info("memory")["total_system_memory"])
1998
+ total_system_memory = int(memory_info["total_system_memory"])
1979
1999
  logging.info(" Using total system memory as max {}".format(total_system_memory))
1980
2000
  maxmemory = total_system_memory
1981
2001
  else:
@@ -2275,6 +2295,7 @@ def data_prepopulation_step(
2275
2295
  oss_cluster_api_enabled=False,
2276
2296
  unix_socket="",
2277
2297
  timeout_buffer=60,
2298
+ args=None,
2278
2299
  ):
2279
2300
  result = True
2280
2301
  # setup the benchmark
@@ -2293,7 +2314,12 @@ def data_prepopulation_step(
2293
2314
  benchmark_config["dbconfig"], "preload_tool"
2294
2315
  )
2295
2316
  preload_tool = extract_client_tool(benchmark_config["dbconfig"], "preload_tool")
2296
- full_benchmark_path = f"/usr/local/bin/{preload_tool}"
2317
+
2318
+ # Set preload tool path based on local install option
2319
+ if benchmark_local_install and "memtier_benchmark" in preload_tool and args:
2320
+ full_benchmark_path = getattr(args, 'memtier_bin_path', 'memtier_benchmark')
2321
+ else:
2322
+ full_benchmark_path = f"/usr/local/bin/{preload_tool}"
2297
2323
  client_mnt_point = "/mnt/client/"
2298
2324
 
2299
2325
  if "memtier_benchmark" in preload_tool:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: redis-benchmarks-specification
3
- Version: 0.1.277
3
+ Version: 0.1.280
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
  Author: filipecosta90
6
6
  Author-email: filipecosta.90@gmail.com
@@ -23,9 +23,9 @@ redis_benchmarks_specification/__compare__/args.py,sha256=FlKD1wutBoKxeahpXw1gY2
23
23
  redis_benchmarks_specification/__compare__/compare.py,sha256=O6ZuB6Ln5xkTX5jRaizpj1PTPhmoETcf-_PY-A_CGr8,57179
24
24
  redis_benchmarks_specification/__init__.py,sha256=YQIEx2sLPPA0JR9OuCuMNMNtm-f_gqDKgzvNJnkGNKY,491
25
25
  redis_benchmarks_specification/__runner__/__init__.py,sha256=l-G1z-t6twUgi8QLueqoTQLvJmv3hJoEYskGm6H7L6M,83
26
- redis_benchmarks_specification/__runner__/args.py,sha256=7XNxIsVfn7woNwRkYJhrENj-n9lvks3BJ56BOj-hJeU,9255
26
+ redis_benchmarks_specification/__runner__/args.py,sha256=WAzAck0w_luIRNuc1tY2S45NmP36sSaFESK-CwiJILc,9513
27
27
  redis_benchmarks_specification/__runner__/remote_profiling.py,sha256=R4KNm44EGeqdqEkZmxjeKg5qpYVeOC54RyyVDeZijQE,11438
28
- redis_benchmarks_specification/__runner__/runner.py,sha256=9vBMoP8eeC82Nt77xTrp0fXo_nX3RZ-3lqXq0baQNKA,98020
28
+ redis_benchmarks_specification/__runner__/runner.py,sha256=K_YthEGoEX66b0kEAKvWLfjSXq86SJUGyOof33qqo64,99489
29
29
  redis_benchmarks_specification/__self_contained_coordinator__/__init__.py,sha256=l-G1z-t6twUgi8QLueqoTQLvJmv3hJoEYskGm6H7L6M,83
30
30
  redis_benchmarks_specification/__self_contained_coordinator__/args.py,sha256=uxBjdQ78klvsVi6lOfGYQVaWIxc8OI-DwYKY16SgvCY,5952
31
31
  redis_benchmarks_specification/__self_contained_coordinator__/artifacts.py,sha256=OVHqJzDgeSSRfUSiKp1ZTAVv14PvSbk-5yJsAAoUfpw,936
@@ -273,8 +273,8 @@ redis_benchmarks_specification/test-suites/memtier_benchmark-nokeys-pubsub-publi
273
273
  redis_benchmarks_specification/test-suites/memtier_benchmark-nokeys-server-time-pipeline-10.yml,sha256=rJuWWXubUeRKQ2GSfHlbPMLeOyM9Eu_MzvN2vgKcAhA,672
274
274
  redis_benchmarks_specification/test-suites/template.txt,sha256=d_edIE7Sxa5X7I2yG-Io0bPdbDIHR0oWFoCA3XUt_EU,435
275
275
  redis_benchmarks_specification/vector-search-test-suites/vector_db_benchmark_test.yml,sha256=uhaSP6YUVmPvZU-qMtPPGdvNEUgUBqOfveUbeJ9WsbI,972
276
- redis_benchmarks_specification-0.1.277.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
277
- redis_benchmarks_specification-0.1.277.dist-info/METADATA,sha256=uBc73XslJxGBoATaRlE2LHKfOp0UPonI-nbF_x2H9RA,22726
278
- redis_benchmarks_specification-0.1.277.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
279
- redis_benchmarks_specification-0.1.277.dist-info/entry_points.txt,sha256=x5WBXCZsnDRTZxV7SBGmC65L2k-ygdDOxV8vuKN00Nk,715
280
- redis_benchmarks_specification-0.1.277.dist-info/RECORD,,
276
+ redis_benchmarks_specification-0.1.280.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
277
+ redis_benchmarks_specification-0.1.280.dist-info/METADATA,sha256=UPoVBQeNRKQj1xsJNi8NYYu6LXbO3rwNo41HFPN14Io,22726
278
+ redis_benchmarks_specification-0.1.280.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
279
+ redis_benchmarks_specification-0.1.280.dist-info/entry_points.txt,sha256=x5WBXCZsnDRTZxV7SBGmC65L2k-ygdDOxV8vuKN00Nk,715
280
+ redis_benchmarks_specification-0.1.280.dist-info/RECORD,,