ray-embedding 0.13.1__py3-none-any.whl → 0.13.2__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 ray-embedding might be problematic. Click here for more details.
- ray_embedding/model_router.py +2 -2
- ray_embedding/node_health.py +8 -4
- {ray_embedding-0.13.1.dist-info → ray_embedding-0.13.2.dist-info}/METADATA +1 -1
- ray_embedding-0.13.2.dist-info/RECORD +10 -0
- ray_embedding-0.13.1.dist-info/RECORD +0 -10
- {ray_embedding-0.13.1.dist-info → ray_embedding-0.13.2.dist-info}/WHEEL +0 -0
- {ray_embedding-0.13.1.dist-info → ray_embedding-0.13.2.dist-info}/top_level.txt +0 -0
ray_embedding/model_router.py
CHANGED
|
@@ -124,5 +124,5 @@ class ModelRouter:
|
|
|
124
124
|
|
|
125
125
|
async def check_health(self):
|
|
126
126
|
if self.node_health_tracker:
|
|
127
|
-
if await self.node_health_tracker.
|
|
128
|
-
raise RuntimeError(f"The node {self.node_ip} is marked bad, or
|
|
127
|
+
if await self.node_health_tracker.is_bad_gpu_or_no_model_replica_on_node.remote(self.node_ip):
|
|
128
|
+
raise RuntimeError(f"The node {self.node_ip} is marked bad, or no model replica running on the node.")
|
ray_embedding/node_health.py
CHANGED
|
@@ -39,12 +39,14 @@ class NodeHealthTracker:
|
|
|
39
39
|
)
|
|
40
40
|
|
|
41
41
|
async def is_bad_gpu_node(self, node_ip: str) -> bool:
|
|
42
|
+
self.logger.info(f"Checking if node {node_ip} is marked bad.")
|
|
42
43
|
with self.lock:
|
|
43
44
|
return node_ip in self.bad_gpu_node_ips
|
|
44
45
|
|
|
45
|
-
async def
|
|
46
|
+
async def is_bad_gpu_or_no_model_replica_on_node(self, node_ip: str):
|
|
47
|
+
self.logger.info(f"Checking if node {node_ip} is marked bad or no model replica running on the node.")
|
|
46
48
|
return (await self.is_bad_gpu_node(node_ip) or
|
|
47
|
-
not await self.
|
|
49
|
+
not await self.is_model_replica_running_on_node(node_ip))
|
|
48
50
|
|
|
49
51
|
async def check_health(self):
|
|
50
52
|
"""Called periodically by Ray Serve. Used here to clean up stale node IDs."""
|
|
@@ -59,12 +61,14 @@ class NodeHealthTracker:
|
|
|
59
61
|
except Exception as e:
|
|
60
62
|
raise RuntimeError(f"An error occurred in check_health during bad node cleanup: {e}")
|
|
61
63
|
|
|
62
|
-
async def
|
|
64
|
+
async def is_model_replica_running_on_node(self, node_ip: str) -> bool:
|
|
63
65
|
"""
|
|
64
|
-
Return True if there is at least one replica of
|
|
66
|
+
Return True if there is at least one replica of the self.tracked_model_deployments
|
|
65
67
|
running on the specified node_ip.
|
|
66
68
|
"""
|
|
67
69
|
try:
|
|
70
|
+
self.logger.info(f"Checking if there is at least one replica of tracked_deployments={self.tracked_model_deployments} "
|
|
71
|
+
f"running on node {node_ip}.")
|
|
68
72
|
target_node_id = next(node["NodeID"] for node in ray.nodes() if node["Alive"] and node["NodeManagerAddress"] == node_ip)
|
|
69
73
|
assert target_node_id, f"No node found with IP {node_ip}"
|
|
70
74
|
prefixes = tuple(f"SERVE_REPLICA::{d}" for d in self.tracked_model_deployments)
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
ray_embedding/__init__.py,sha256=YS5LAZfRIwwVvE3C9g7hsauvjgIkqKtHyxkwMFFfAGY,46
|
|
2
|
+
ray_embedding/deploy.py,sha256=2R7bQ7aPc9G8H9KVoemxum6-9YxmlXQogWbhFhuslko,3762
|
|
3
|
+
ray_embedding/dto.py,sha256=lk_LuVQPq3MLIMTMddqHviYXILY6V5dvbzDJuD_D_qc,1573
|
|
4
|
+
ray_embedding/embedding_model.py,sha256=P2xyXCznxXmdQBK6zodOJEMvxGVRMA8Ra3O5Qi7RCh0,6013
|
|
5
|
+
ray_embedding/model_router.py,sha256=fmaeXzaAJeCemzL9nUoXfdCrU-ZaCe_29fx5ayDCTC0,6845
|
|
6
|
+
ray_embedding/node_health.py,sha256=jZCpa32PlDKSrLY5p5-07cJZqHOb4wMxsoW7LqIgYak,4740
|
|
7
|
+
ray_embedding-0.13.2.dist-info/METADATA,sha256=FBMYV1oVH6O4LCRvoN8tYDQFFK6FRHh76JVVLKu_4aE,1074
|
|
8
|
+
ray_embedding-0.13.2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
9
|
+
ray_embedding-0.13.2.dist-info/top_level.txt,sha256=ziCblpJq1YsrryshFqxTRuRMgNuO1_tgvAAkGShATNA,14
|
|
10
|
+
ray_embedding-0.13.2.dist-info/RECORD,,
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
ray_embedding/__init__.py,sha256=YS5LAZfRIwwVvE3C9g7hsauvjgIkqKtHyxkwMFFfAGY,46
|
|
2
|
-
ray_embedding/deploy.py,sha256=2R7bQ7aPc9G8H9KVoemxum6-9YxmlXQogWbhFhuslko,3762
|
|
3
|
-
ray_embedding/dto.py,sha256=lk_LuVQPq3MLIMTMddqHviYXILY6V5dvbzDJuD_D_qc,1573
|
|
4
|
-
ray_embedding/embedding_model.py,sha256=P2xyXCznxXmdQBK6zodOJEMvxGVRMA8Ra3O5Qi7RCh0,6013
|
|
5
|
-
ray_embedding/model_router.py,sha256=uHbPqiKuaxUO6mx8pJK19yr83RBiVyfMAB5FkWJl3Gk,6850
|
|
6
|
-
ray_embedding/node_health.py,sha256=ZwQFshoMmTDpuCSRW-uixEfwzFrJo8JMTu8L5r8NIjA,4374
|
|
7
|
-
ray_embedding-0.13.1.dist-info/METADATA,sha256=NCK8Ks2nDMfDCQ_0PLOX2wkWzgKhE9qqq4QRm_a2nII,1074
|
|
8
|
-
ray_embedding-0.13.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
9
|
-
ray_embedding-0.13.1.dist-info/top_level.txt,sha256=ziCblpJq1YsrryshFqxTRuRMgNuO1_tgvAAkGShATNA,14
|
|
10
|
-
ray_embedding-0.13.1.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|