fix(graph): cap get_all_edges to 5000 edges to prevent unbounded RAM growth
This commit is contained in:
parent
d09ee23cd3
commit
656a3d7d5c
|
|
@ -392,13 +392,17 @@ class GraphitiBackend(GraphBackend):
|
||||||
})
|
})
|
||||||
return nodes
|
return nodes
|
||||||
|
|
||||||
def get_all_edges(self, graph_id: str) -> List[Dict[str, Any]]:
|
def get_all_edges(self, graph_id: str, max_items: int = 5000) -> List[Dict[str, Any]]:
|
||||||
results = _run_async(
|
results = _run_async(
|
||||||
self._client.driver.execute_query(
|
self._client.driver.execute_query(
|
||||||
"MATCH (s)-[r]->(t) WHERE r.group_id = $gid RETURN s, r, t",
|
"MATCH (s)-[r]->(t) WHERE r.group_id = $gid RETURN s, r, t LIMIT $limit",
|
||||||
params={"gid": graph_id},
|
params={"gid": graph_id, "limit": max_items},
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
if len(results.records) >= max_items:
|
||||||
|
logger.warning(
|
||||||
|
f"get_all_edges: result truncated at {max_items} edges for graph {graph_id}"
|
||||||
|
)
|
||||||
edges = []
|
edges = []
|
||||||
for record in results.records:
|
for record in results.records:
|
||||||
r = record["r"]
|
r = record["r"]
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue