Hierarchical Deadlock Detection in Distributed System
Prerequisite: Deadlock detection in Distributed systems
In hierarchical deadlock detection algorithm, sites are arranged in a hierarchical fashion and a site detects deadlocks involving only its descendant sites. Distributed deadlock algorithms delegate the responsibility of deadlock detection to individual sites while in hierarchical there are local detectors at each site which communicate their local wait for graphs(WFG) with one another.
Deadlocks that are local to a single site are detected at that site using their local WFG. Each site also sends its local WFG to deadlock detector at the next level. Thus, distributed deadlocks involving 2 or more sites would be detected by a deadlock detector in lowest level that has control over these sites.
In this approach, there are 2 methods to detect:
1. Ho-Ramamoorthy algorithm:
- Uses only two levels i.e. Master control nodes and Cluster control nodes.
- Cluster control nodes are used for detecting deadlock among their members and reporting dependencies outside their cluster to Master control node.
- The master control node is responsible for detecting inter-cluster deadlocks.
2. Menasce-Muntz algorithm:
- Leaf controllers are responsible for allocating resources whereas branch controllers find deadlock among the resources that their children span in the tree.
- Network congestion can be managed and node failure is less critical than in fully centralized.
- Detection can be done ways such as Continuous allocation reporting or periodically allocation reporting.
- If the hierarchy coincides with resource access pattern local to cluster of sites, this approach can provide efficient deadlock detection as compared to both centralized and distributed methods.
- It reduces the dependence on central sites thus, reducing the communication cost.
- If deadlocks are span over several clusters, this approach will be inefficient.
- It is more complicated to implement and would involve nontrivial modification to lock and transaction manager algorithms.