You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add distributed deadlock detection via call edge tracking
Before making a cross-database reducer call, register an edge A -> B with
a CallEdgeTracker. If adding the edge would create a cycle (distributed
deadlock), the tracker returns an error. The caller retries with exponential
backoff (5 attempts), then fails with a deadlock error.
New trait CallEdgeTracker in core::host::call_edge_tracker with:
- register_edge(call_id, caller, callee) -> Result<()>
- unregister_edge(call_id) -> Result<()>
- unregister_all_edges() -> Result<()> (crash cleanup on startup)
NoopCallEdgeTracker for standalone (always allows calls).
Cloud implementation will call control DB reducers for cycle detection.
Also added register/unregister_reducer_call_edge methods to
ControlStateWriteAccess trait (no-op in standalone).
0 commit comments