redisbench-admin 0.11.73__tar.gz → 0.11.74__tar.gz

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.
Files changed (116) hide show
  1. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/PKG-INFO +1 -1
  2. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/pyproject.toml +1 -1
  3. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/run_local/local_db.py +13 -3
  4. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/run_remote/remote_db.py +16 -4
  5. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/run_remote/standalone.py +11 -0
  6. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/utils/utils.py +69 -0
  7. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/LICENSE +0 -0
  8. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/README.md +0 -0
  9. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/__init__.py +0 -0
  10. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/cli.py +0 -0
  11. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/commands/__init__.py +0 -0
  12. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/commands/commands.json.py +0 -0
  13. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/compare/__init__.py +0 -0
  14. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/compare/args.py +0 -0
  15. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/compare/compare.py +0 -0
  16. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/deploy/__init__.py +0 -0
  17. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/deploy/args.py +0 -0
  18. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/deploy/deploy.py +0 -0
  19. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/environments/__init__.py +0 -0
  20. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/environments/oss_cluster.py +0 -0
  21. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/environments/oss_standalone.py +0 -0
  22. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/export/__init__.py +0 -0
  23. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/export/args.py +0 -0
  24. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/export/common/__init__.py +0 -0
  25. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/export/common/common.py +0 -0
  26. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/export/export.py +0 -0
  27. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/export/google_benchmark/__init__.py +0 -0
  28. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/export/google_benchmark/google_benchmark_json_format.py +0 -0
  29. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/export/memtier_benchmark/__init__.py +0 -0
  30. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/export/memtier_benchmark/memtier_benchmark_json_format.py +0 -0
  31. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/export/pyperf/__init__.py +0 -0
  32. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/export/pyperf/pyperf_json_format.py +0 -0
  33. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/export/redis_benchmark/__init__.py +0 -0
  34. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/export/redis_benchmark/metrics_definition.py +0 -0
  35. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/export/redis_benchmark/redis_benchmark_csv_format.py +0 -0
  36. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/extract/__init__.py +0 -0
  37. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/extract/args.py +0 -0
  38. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/extract/extract.py +0 -0
  39. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/grafana_api/__init__.py +0 -0
  40. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/grafana_api/app.py +0 -0
  41. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/grafana_api/args.py +0 -0
  42. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/grafana_api/grafana_api.py +0 -0
  43. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/profilers/__init__.py +0 -0
  44. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/profilers/daemon.py +0 -0
  45. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/profilers/flamegraph.pl +0 -0
  46. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/profilers/perf.py +0 -0
  47. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/profilers/perf_daemon_caller.py +0 -0
  48. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/profilers/pprof.py +0 -0
  49. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/profilers/profilers.py +0 -0
  50. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/profilers/profilers_local.py +0 -0
  51. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/profilers/profilers_schema.py +0 -0
  52. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/profilers/stackcollapse-perf.pl +0 -0
  53. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/profilers/vtune.py +0 -0
  54. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/run/__init__.py +0 -0
  55. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/run/aibench_run_inference_redisai_vision/__init__.py +0 -0
  56. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/run/aibench_run_inference_redisai_vision/aibench_run_inference_redisai_vision.py +0 -0
  57. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/run/ann/__init__.py +0 -0
  58. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/run/ann/ann.py +0 -0
  59. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/run/args.py +0 -0
  60. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/run/asm.py +0 -0
  61. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/run/cluster.py +0 -0
  62. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/run/common.py +0 -0
  63. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/run/ftsb/__init__.py +0 -0
  64. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/run/ftsb/ftsb.py +0 -0
  65. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/run/git.py +0 -0
  66. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/run/grafana.py +0 -0
  67. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/run/memtier_benchmark/__init__.py +0 -0
  68. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/run/memtier_benchmark/memtier_benchmark.py +0 -0
  69. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/run/metrics.py +0 -0
  70. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/run/modules.py +0 -0
  71. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/run/redis_benchmark/__init__.py +0 -0
  72. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/run/redis_benchmark/redis_benchmark.py +0 -0
  73. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/run/redisgraph_benchmark_go/__init__.py +0 -0
  74. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/run/redisgraph_benchmark_go/redisgraph_benchmark_go.py +0 -0
  75. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/run/redistimeseries.py +0 -0
  76. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/run/run.py +0 -0
  77. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/run/s3.py +0 -0
  78. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/run/ssh.py +0 -0
  79. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/run/tsbs_run_queries_redistimeseries/__init__.py +0 -0
  80. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/run/tsbs_run_queries_redistimeseries/tsbs_run_queries_redistimeseries.py +0 -0
  81. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/run/ycsb/__init__.py +0 -0
  82. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/run/ycsb/ycsb.py +0 -0
  83. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/run_async/__init__.py +0 -0
  84. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/run_async/async_env.py +0 -0
  85. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/run_async/async_terraform.py +0 -0
  86. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/run_async/benchmark.py +0 -0
  87. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/run_async/log.py +0 -0
  88. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/run_async/render_files.py +0 -0
  89. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/run_async/run_async.py +0 -0
  90. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/run_local/__init__.py +0 -0
  91. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/run_local/args.py +0 -0
  92. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/run_local/local_client.py +0 -0
  93. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/run_local/local_helpers.py +0 -0
  94. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/run_local/run_local.py +0 -0
  95. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/run_remote/__init__.py +0 -0
  96. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/run_remote/args.py +0 -0
  97. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/run_remote/consts.py +0 -0
  98. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/run_remote/log.py +0 -0
  99. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/run_remote/notifications.py +0 -0
  100. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/run_remote/remote_client.py +0 -0
  101. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/run_remote/remote_env.py +0 -0
  102. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/run_remote/remote_failures.py +0 -0
  103. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/run_remote/remote_helpers.py +0 -0
  104. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/run_remote/run_remote.py +0 -0
  105. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/run_remote/terraform.py +0 -0
  106. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/utils/__init__.py +0 -0
  107. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/utils/benchmark_config.py +0 -0
  108. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/utils/local.py +0 -0
  109. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/utils/redisearch.py +0 -0
  110. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/utils/redisgraph_benchmark_go.py +0 -0
  111. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/utils/remote.py +0 -0
  112. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/utils/results.py +0 -0
  113. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/utils/ssh.py +0 -0
  114. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/watchdog/__init__.py +0 -0
  115. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/watchdog/args.py +0 -0
  116. {redisbench_admin-0.11.73 → redisbench_admin-0.11.74}/redisbench_admin/watchdog/watchdog.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: redisbench-admin
3
- Version: 0.11.73
3
+ Version: 0.11.74
4
4
  Summary: Redis benchmark run helper. A wrapper around Redis and Redis Modules benchmark tools ( ftsb_redisearch, memtier_benchmark, redis-benchmark, aibench, etc... ).
5
5
  License-File: LICENSE
6
6
  Author: filipecosta90
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "redisbench-admin"
3
- version = "0.11.73"
3
+ version = "0.11.74"
4
4
  description = "Redis benchmark run helper. A wrapper around Redis and Redis Modules benchmark tools ( ftsb_redisearch, memtier_benchmark, redis-benchmark, aibench, etc... )."
5
5
  authors = ["filipecosta90 <filipecosta.90@gmail.com>","Redis Performance Group <performance@redis.com>"]
6
6
  readme = "README.md"
@@ -4,6 +4,7 @@
4
4
  # All rights reserved.
5
5
  #
6
6
  import logging
7
+ import os
7
8
  import tempfile
8
9
  import datetime
9
10
 
@@ -32,6 +33,7 @@ from redisbench_admin.utils.local import (
32
33
  check_dataset_local_requirements,
33
34
  is_process_alive,
34
35
  )
36
+ from redisbench_admin.utils.utils import setup_search_clusterset
35
37
 
36
38
 
37
39
  def local_db_spin(
@@ -163,6 +165,9 @@ def local_db_spin(
163
165
  r.client_setname("redisbench-admin-standalone")
164
166
  redis_conns.append(r)
165
167
 
168
+ # Setup search CLUSTERSET if enabled (after all servers are started and cluster is set up)
169
+ setup_search_clusterset(redis_conns, args.host, args.port, args.password)
170
+
166
171
  if dataset is None:
167
172
  if flushall_on_every_test_start:
168
173
  logging.info("Will flush all data at test start...")
@@ -213,8 +218,13 @@ def local_db_spin(
213
218
  )
214
219
  dbconfig_keyspacelen_check(benchmark_config, redis_conns, ignore_keyspace_errors)
215
220
 
216
- artifact_version = run_redis_pre_steps(
217
- benchmark_config, redis_conns[0], required_modules
218
- )
221
+ if 'SEARCH_CLUSTERSET' in os.environ:
222
+ logging.info("SEARCH_CLUSTERSET is set. Running run_redis_pre_steps for each shard")
223
+ for conn in redis_conns:
224
+ artifact_version = run_redis_pre_steps(benchmark_config, conn, required_modules)
225
+ else:
226
+ artifact_version = run_redis_pre_steps(
227
+ benchmark_config, redis_conns[0], required_modules
228
+ )
219
229
 
220
230
  return result, artifact_version, cluster_api_enabled, redis_conns, redis_processes
@@ -5,7 +5,7 @@
5
5
  #
6
6
  import datetime
7
7
  import logging
8
-
8
+ import os
9
9
  import redis
10
10
 
11
11
  from redisbench_admin.environments.oss_cluster import setup_redis_cluster_from_conns
@@ -37,6 +37,7 @@ from redisbench_admin.utils.remote import (
37
37
  check_dataset_remote_requirements,
38
38
  get_run_full_filename,
39
39
  )
40
+ from redisbench_admin.utils.utils import setup_search_clusterset
40
41
 
41
42
 
42
43
  def remote_tmpdir_prune(
@@ -277,6 +278,14 @@ def remote_db_spin(
277
278
  )
278
279
  server_plaintext_port = cluster_start_port
279
280
 
281
+ # Setup BigRedis CLUSTERSET if enabled (after all servers are started and cluster is set up)
282
+ setup_search_clusterset(
283
+ redis_conns,
284
+ server_private_ip,
285
+ cluster_start_port if cluster_enabled else server_plaintext_port,
286
+ redis_password,
287
+ )
288
+
280
289
  topology_setup_end_time = datetime.datetime.now()
281
290
  topology_setup_duration_seconds = (
282
291
  topology_setup_end_time - topology_setup_start_time
@@ -406,9 +415,12 @@ def remote_db_spin(
406
415
  ignore_keyspace_errors,
407
416
  keyspace_check_timeout,
408
417
  )
409
- artifact_version = run_redis_pre_steps(
410
- benchmark_config, redis_conns[0], required_modules
411
- )
418
+ if 'SEARCH_CLUSTERSET' in os.environ:
419
+ logging.info("SEARCH_CLUSTERSET is set. Running run_redis_pre_steps for each shard")
420
+ for conn in redis_conns:
421
+ artifact_version = run_redis_pre_steps(benchmark_config, conn, required_modules)
422
+ else:
423
+ artifact_version = run_redis_pre_steps(benchmark_config, redis_conns[0], required_modules)
412
424
  return (
413
425
  artifact_version,
414
426
  cluster_enabled,
@@ -583,6 +583,17 @@ def generate_remote_standalone_redis_cmd(
583
583
  )
584
584
  if remote_module_files is not None:
585
585
  initial_redis_cmd += " " + " ".join(command)
586
+
587
+ # Add BigRedis configuration if enabled via environment variable
588
+ if os.getenv("BIGREDIS_ENABLED") is not None:
589
+ bigredis_path = os.getenv("BIGREDIS_PATH", f"{temporary_dir}/redis.big")
590
+ bigredis_use_async = os.getenv("BIGREDIS_USE_ASYNC", "no")
591
+ logging.info(f"BigRedis enabled. Using bigredis-path: {bigredis_path}")
592
+ initial_redis_cmd += " --bigredis-enabled yes"
593
+ initial_redis_cmd += " --bigredis-driver speedb"
594
+ initial_redis_cmd += f" --bigredis-use-async {bigredis_use_async}"
595
+ initial_redis_cmd += f" --bigredis-path {bigredis_path}"
596
+
586
597
  return full_logfile, initial_redis_cmd
587
598
 
588
599
 
@@ -137,6 +137,75 @@ def generate_common_server_args(
137
137
  return command
138
138
 
139
139
 
140
+ def setup_search_clusterset(redis_conns, host="127.0.0.1", start_port=6379, password=None):
141
+ """
142
+ Configure SEARCH.CLUSTERSET for Redis instances.
143
+ This is required when SEARCH_CLUSTERSET is set to configure the search module
144
+ to work with BigRedis. Supports both standalone (single conn) and cluster (multiple conns).
145
+
146
+ Args:
147
+ redis_conns: List of Redis connection objects (or single connection)
148
+ host: Redis host address (default: 127.0.0.1)
149
+ start_port: Starting port number (default: 6379)
150
+ password: Redis password (optional)
151
+ """
152
+ if os.getenv("SEARCH_CLUSTERSET") is None:
153
+ return
154
+
155
+ # Handle single connection case
156
+ if not isinstance(redis_conns, list):
157
+ redis_conns = [redis_conns]
158
+
159
+ shard_count = len(redis_conns)
160
+ logging.info(f"Search Clusterset enabled - configuring SEARCH.CLUSTERSET for {shard_count} shard(s)")
161
+
162
+ # Calculate slots per shard
163
+ total_slots = 16384
164
+ slots_per_shard = total_slots // shard_count
165
+
166
+ for shard_id, conn in enumerate(redis_conns, start=1):
167
+ port = start_port + shard_id - 1
168
+
169
+ # Calculate slot range for this shard
170
+ slot_start = (shard_id - 1) * slots_per_shard
171
+ if shard_id == shard_count:
172
+ # Last shard gets remaining slots
173
+ slot_end = total_slots - 1
174
+ else:
175
+ slot_end = shard_id * slots_per_shard - 1
176
+
177
+ # Build the address string with optional password
178
+ if password:
179
+ addr = f"{password}@{host}:{port}"
180
+ else:
181
+ addr = f"{host}:{port}"
182
+
183
+ logging.info(
184
+ f"Sending SEARCH.CLUSTERSET to shard {shard_id}: "
185
+ f"slots {slot_start}-{slot_end}, addr {host}:{port}"
186
+ )
187
+
188
+ try:
189
+ conn.execute_command(
190
+ "SEARCH.CLUSTERSET",
191
+ "MYID",
192
+ str(shard_id),
193
+ "RANGES",
194
+ "1",
195
+ "SHARD",
196
+ str(shard_id),
197
+ "SLOTRANGE",
198
+ str(slot_start),
199
+ str(slot_end),
200
+ "ADDR",
201
+ addr,
202
+ "MASTER",
203
+ )
204
+ logging.info(f"SEARCH.CLUSTERSET command executed successfully for shard {shard_id}")
205
+ except Exception as e:
206
+ logging.warning(f"Failed to execute SEARCH.CLUSTERSET for shard {shard_id}: {e}")
207
+
208
+
140
209
  def upload_artifacts_to_s3(
141
210
  artifacts,
142
211
  s3_bucket_name,