redis-benchmarks-specification 0.1.335__py3-none-any.whl → 0.1.337__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.
- redis_benchmarks_specification/__runner__/runner.py +3 -1
- redis_benchmarks_specification/__self_contained_coordinator__/args.py +6 -0
- redis_benchmarks_specification/__self_contained_coordinator__/runners.py +44 -0
- redis_benchmarks_specification/__self_contained_coordinator__/self_contained_coordinator.py +19 -5
- {redis_benchmarks_specification-0.1.335.dist-info → redis_benchmarks_specification-0.1.337.dist-info}/METADATA +1 -1
- {redis_benchmarks_specification-0.1.335.dist-info → redis_benchmarks_specification-0.1.337.dist-info}/RECORD +9 -9
- {redis_benchmarks_specification-0.1.335.dist-info → redis_benchmarks_specification-0.1.337.dist-info}/LICENSE +0 -0
- {redis_benchmarks_specification-0.1.335.dist-info → redis_benchmarks_specification-0.1.337.dist-info}/WHEEL +0 -0
- {redis_benchmarks_specification-0.1.335.dist-info → redis_benchmarks_specification-0.1.337.dist-info}/entry_points.txt +0 -0
|
@@ -1482,7 +1482,9 @@ def process_self_contained_coordinator_stream(
|
|
|
1482
1482
|
default_metrics = get_defaults_result[2]
|
|
1483
1483
|
else:
|
|
1484
1484
|
default_metrics = []
|
|
1485
|
-
logging.warning(
|
|
1485
|
+
logging.warning(
|
|
1486
|
+
"get_defaults returned fewer values than expected, using empty default_metrics"
|
|
1487
|
+
)
|
|
1486
1488
|
|
|
1487
1489
|
# For memory comparison mode, analyze datasets before starting
|
|
1488
1490
|
if memory_comparison_only:
|
|
@@ -201,4 +201,10 @@ def create_self_contained_coordinator_args(project_name):
|
|
|
201
201
|
default=None,
|
|
202
202
|
help="Password for HTTP endpoint authentication. HTTP server is disabled if not provided.",
|
|
203
203
|
)
|
|
204
|
+
parser.add_argument(
|
|
205
|
+
"--skip-clear-pending-on-startup",
|
|
206
|
+
default=False,
|
|
207
|
+
action="store_true",
|
|
208
|
+
help="Skip automatically clearing pending messages for this consumer on startup. By default, pending messages are cleared to recover from crashes.",
|
|
209
|
+
)
|
|
204
210
|
return parser
|
|
@@ -99,6 +99,50 @@ def get_runners_consumer_group_name(running_platform):
|
|
|
99
99
|
return consumer_group_name
|
|
100
100
|
|
|
101
101
|
|
|
102
|
+
def clear_pending_messages_for_consumer(conn, running_platform, consumer_pos):
|
|
103
|
+
"""Clear all pending messages for a specific consumer on startup"""
|
|
104
|
+
consumer_group_name = get_runners_consumer_group_name(running_platform)
|
|
105
|
+
consumer_name = "{}-self-contained-proc#{}".format(
|
|
106
|
+
consumer_group_name, consumer_pos
|
|
107
|
+
)
|
|
108
|
+
|
|
109
|
+
try:
|
|
110
|
+
# Get pending messages for this specific consumer
|
|
111
|
+
pending_info = conn.xpending_range(
|
|
112
|
+
STREAM_KEYNAME_NEW_BUILD_EVENTS,
|
|
113
|
+
consumer_group_name,
|
|
114
|
+
min="-",
|
|
115
|
+
max="+",
|
|
116
|
+
count=1000, # Get up to 1000 pending messages
|
|
117
|
+
consumername=consumer_name,
|
|
118
|
+
)
|
|
119
|
+
|
|
120
|
+
if pending_info:
|
|
121
|
+
message_ids = [msg["message_id"] for msg in pending_info]
|
|
122
|
+
logging.info(
|
|
123
|
+
f"Found {len(message_ids)} pending messages for consumer {consumer_name}. Clearing them..."
|
|
124
|
+
)
|
|
125
|
+
|
|
126
|
+
# Acknowledge all pending messages to clear them
|
|
127
|
+
ack_count = conn.xack(
|
|
128
|
+
STREAM_KEYNAME_NEW_BUILD_EVENTS, consumer_group_name, *message_ids
|
|
129
|
+
)
|
|
130
|
+
|
|
131
|
+
logging.info(
|
|
132
|
+
f"Successfully cleared {ack_count} pending messages for consumer {consumer_name}"
|
|
133
|
+
)
|
|
134
|
+
else:
|
|
135
|
+
logging.info(f"No pending messages found for consumer {consumer_name}")
|
|
136
|
+
|
|
137
|
+
except redis.exceptions.ResponseError as e:
|
|
138
|
+
if "NOGROUP" in str(e):
|
|
139
|
+
logging.info(f"Consumer group {consumer_group_name} does not exist yet")
|
|
140
|
+
else:
|
|
141
|
+
logging.warning(f"Error clearing pending messages: {e}")
|
|
142
|
+
except Exception as e:
|
|
143
|
+
logging.error(f"Unexpected error clearing pending messages: {e}")
|
|
144
|
+
|
|
145
|
+
|
|
102
146
|
def process_self_contained_coordinator_stream(
|
|
103
147
|
conn,
|
|
104
148
|
datasink_push_results_redistimeseries,
|
|
@@ -75,6 +75,7 @@ from redis_benchmarks_specification.__self_contained_coordinator__.args import (
|
|
|
75
75
|
from redis_benchmarks_specification.__self_contained_coordinator__.runners import (
|
|
76
76
|
build_runners_consumer_group_create,
|
|
77
77
|
get_runners_consumer_group_name,
|
|
78
|
+
clear_pending_messages_for_consumer,
|
|
78
79
|
)
|
|
79
80
|
from redis_benchmarks_specification.__setups__.topologies import get_topologies
|
|
80
81
|
|
|
@@ -649,6 +650,17 @@ def main():
|
|
|
649
650
|
logging.info("checking build spec requirements")
|
|
650
651
|
running_platform = args.platform_name
|
|
651
652
|
build_runners_consumer_group_create(gh_event_conn, running_platform)
|
|
653
|
+
|
|
654
|
+
# Clear pending messages by default (unless explicitly skipped)
|
|
655
|
+
if not args.skip_clear_pending_on_startup:
|
|
656
|
+
consumer_pos = args.consumer_pos
|
|
657
|
+
logging.info("Clearing pending messages on startup (default behavior)")
|
|
658
|
+
clear_pending_messages_for_consumer(
|
|
659
|
+
gh_event_conn, running_platform, consumer_pos
|
|
660
|
+
)
|
|
661
|
+
else:
|
|
662
|
+
logging.info("Skipping pending message cleanup as requested")
|
|
663
|
+
|
|
652
664
|
stream_id = None
|
|
653
665
|
docker_client = docker.from_env()
|
|
654
666
|
home = str(Path.home())
|
|
@@ -680,7 +692,9 @@ def main():
|
|
|
680
692
|
default_metrics = get_defaults_result[2]
|
|
681
693
|
else:
|
|
682
694
|
default_metrics = []
|
|
683
|
-
logging.warning(
|
|
695
|
+
logging.warning(
|
|
696
|
+
"get_defaults returned fewer values than expected, using empty default_metrics"
|
|
697
|
+
)
|
|
684
698
|
|
|
685
699
|
# Consumer id
|
|
686
700
|
consumer_pos = args.consumer_pos
|
|
@@ -2271,14 +2285,14 @@ def filter_test_files(
|
|
|
2271
2285
|
continue
|
|
2272
2286
|
|
|
2273
2287
|
if command_groups_regexp is not None:
|
|
2274
|
-
logging.
|
|
2288
|
+
logging.debug(
|
|
2275
2289
|
"Filtering all test command groups via a regular expression: {}".format(
|
|
2276
2290
|
command_groups_regexp
|
|
2277
2291
|
)
|
|
2278
2292
|
)
|
|
2279
2293
|
if "tested-groups" in benchmark_config:
|
|
2280
2294
|
command_groups = benchmark_config["tested-groups"]
|
|
2281
|
-
logging.
|
|
2295
|
+
logging.debug(
|
|
2282
2296
|
f"The file {test_file} (test name = {test_name}) contains the following groups: {command_groups}"
|
|
2283
2297
|
)
|
|
2284
2298
|
groups_regex_string = re.compile(command_groups_regexp)
|
|
@@ -2287,14 +2301,14 @@ def filter_test_files(
|
|
|
2287
2301
|
match_obj = re.search(groups_regex_string, command_group)
|
|
2288
2302
|
if match_obj is not None:
|
|
2289
2303
|
found = True
|
|
2290
|
-
logging.
|
|
2304
|
+
logging.debug(f"found the command group {command_group}")
|
|
2291
2305
|
if found is False:
|
|
2292
2306
|
logging.info(
|
|
2293
2307
|
f"Skipping {test_file} given the following groups: {command_groups} does not match command group regex {command_groups_regexp}"
|
|
2294
2308
|
)
|
|
2295
2309
|
continue
|
|
2296
2310
|
else:
|
|
2297
|
-
logging.
|
|
2311
|
+
logging.debug(
|
|
2298
2312
|
f"The file {test_file} (test name = {test_name}) does not contain the property 'tested-groups'. Cannot filter based uppon groups..."
|
|
2299
2313
|
)
|
|
2300
2314
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: redis-benchmarks-specification
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.337
|
|
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
|
|
@@ -26,9 +26,9 @@ redis_benchmarks_specification/__init__.py,sha256=YQIEx2sLPPA0JR9OuCuMNMNtm-f_gq
|
|
|
26
26
|
redis_benchmarks_specification/__runner__/__init__.py,sha256=l-G1z-t6twUgi8QLueqoTQLvJmv3hJoEYskGm6H7L6M,83
|
|
27
27
|
redis_benchmarks_specification/__runner__/args.py,sha256=K3VGmBC0-9lSv9H6VDp0N-6FGMWvc_4H0pG_TOXN5u8,11312
|
|
28
28
|
redis_benchmarks_specification/__runner__/remote_profiling.py,sha256=R7obNQju8mmY9oKkcndjI4aAuxi84OCLhDSqqaYu1SU,18610
|
|
29
|
-
redis_benchmarks_specification/__runner__/runner.py,sha256=
|
|
29
|
+
redis_benchmarks_specification/__runner__/runner.py,sha256=JW2fB0C6Ce4d6VVQK50qNqpSNGEjq6QVjowUMUA0gzs,156345
|
|
30
30
|
redis_benchmarks_specification/__self_contained_coordinator__/__init__.py,sha256=l-G1z-t6twUgi8QLueqoTQLvJmv3hJoEYskGm6H7L6M,83
|
|
31
|
-
redis_benchmarks_specification/__self_contained_coordinator__/args.py,sha256=
|
|
31
|
+
redis_benchmarks_specification/__self_contained_coordinator__/args.py,sha256=Rkajbvb-R4aEJd01gHNbAWrKuiqycHNfKVdO28nDEjI,7244
|
|
32
32
|
redis_benchmarks_specification/__self_contained_coordinator__/artifacts.py,sha256=OVHqJzDgeSSRfUSiKp1ZTAVv14PvSbk-5yJsAAoUfpw,936
|
|
33
33
|
redis_benchmarks_specification/__self_contained_coordinator__/build_info.py,sha256=vlg8H8Rxu2falW8xp1GvL1SV1fyBguSbz6Apxc7A2yM,2282
|
|
34
34
|
redis_benchmarks_specification/__self_contained_coordinator__/clients.py,sha256=EL1V4-i-tTav1mcF_CUosqPF3Q1qi9BZL0zFajEk70c,1878
|
|
@@ -36,8 +36,8 @@ redis_benchmarks_specification/__self_contained_coordinator__/cpuset.py,sha256=s
|
|
|
36
36
|
redis_benchmarks_specification/__self_contained_coordinator__/docker.py,sha256=09SyAfqlzs1KG9ZAajClNWtiNk4Jqzd--4-m3n1rLjU,3156
|
|
37
37
|
redis_benchmarks_specification/__self_contained_coordinator__/post_processing.py,sha256=sVLKNnWdAqYY9DjVdqRC5tDaIrVSaI3Ca7w8-DQ-LRM,776
|
|
38
38
|
redis_benchmarks_specification/__self_contained_coordinator__/prepopulation.py,sha256=1UeFr2T1ZQBcHCSd4W1ZtaWgXyFPfjLyDi_DgDc1eTA,2957
|
|
39
|
-
redis_benchmarks_specification/__self_contained_coordinator__/runners.py,sha256=
|
|
40
|
-
redis_benchmarks_specification/__self_contained_coordinator__/self_contained_coordinator.py,sha256=
|
|
39
|
+
redis_benchmarks_specification/__self_contained_coordinator__/runners.py,sha256=agom6H0iDUH_oQkObS8EtoAm0JUpTVeiBv-EMEnEMtY,31908
|
|
40
|
+
redis_benchmarks_specification/__self_contained_coordinator__/self_contained_coordinator.py,sha256=l7OvqbF86l7YhwQQ80En5uxECxytvqlW7NeW43q6YUM,112547
|
|
41
41
|
redis_benchmarks_specification/__setups__/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
42
42
|
redis_benchmarks_specification/__setups__/topologies.py,sha256=xQ1IJkcTji_ZjLiJd3vOxZpvbNtBLZw9cPkw5hGJKHU,481
|
|
43
43
|
redis_benchmarks_specification/__spec__/__init__.py,sha256=l-G1z-t6twUgi8QLueqoTQLvJmv3hJoEYskGm6H7L6M,83
|
|
@@ -282,8 +282,8 @@ redis_benchmarks_specification/test-suites/memtier_benchmark-playbook-session-st
|
|
|
282
282
|
redis_benchmarks_specification/test-suites/memtier_benchmark-playbook-session-storage-1k-sessions.yml,sha256=2egtIxPxCze2jlbAfgsk4v9JSQHNMoPLbDWFEW8olDg,7006
|
|
283
283
|
redis_benchmarks_specification/test-suites/template.txt,sha256=ezqGiRPOvuSDO0iG7GEf-AGXNfHbgXI89_G0RUEzL88,481
|
|
284
284
|
redis_benchmarks_specification/vector-search-test-suites/vector_db_benchmark_test.yml,sha256=PD7ow-k4Ll2BkhEC3aIqiaCZt8Hc4aJIp96Lw3J3mcI,791
|
|
285
|
-
redis_benchmarks_specification-0.1.
|
|
286
|
-
redis_benchmarks_specification-0.1.
|
|
287
|
-
redis_benchmarks_specification-0.1.
|
|
288
|
-
redis_benchmarks_specification-0.1.
|
|
289
|
-
redis_benchmarks_specification-0.1.
|
|
285
|
+
redis_benchmarks_specification-0.1.337.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
|
286
|
+
redis_benchmarks_specification-0.1.337.dist-info/METADATA,sha256=MwhGo3EAg1Au3m-RJ41H-Bi400Fj4d4xjGqcRxgGNLQ,22768
|
|
287
|
+
redis_benchmarks_specification-0.1.337.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
|
|
288
|
+
redis_benchmarks_specification-0.1.337.dist-info/entry_points.txt,sha256=x5WBXCZsnDRTZxV7SBGmC65L2k-ygdDOxV8vuKN00Nk,715
|
|
289
|
+
redis_benchmarks_specification-0.1.337.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|