Abstract:
Systems and methods that enable resolving deadlock cycles by victim selection based on cost and/or priority of strongly connected components in a static wait-for graph. As such, victims can be selected by iteratively estimating total deadlock resolution cost (based on cost of strongly connected components) for remaining deadlock participants, selecting the participant with the least estimated total cost as the next victim, and reducing the wait-for graph after removing the victim vertex. The victim selection algorithm can be a cost-based greedy algorithm, wherein during each victim selection iteration, a single optimal victim is selected based on estimated remaining cost.
Abstract:
Systems and methods that enable resolving deadlock cycles by victim selection based on cost and/or priority of strongly connected components in a static wait-for graph. As such, victims can be selected by iteratively estimating total deadlock resolution cost (based on cost of strongly connected components) for remaining deadlock participants, selecting the participant with the least estimated total cost as the next victim, and reducing the wait-for graph after removing the victim vertex. The victim selection algorithm can be a cost-based greedy algorithm, wherein during each victim selection iteration, a single optimal victim is selected based on estimated remaining cost.
Abstract:
Aspects of the subject matter described herein relate to deadlock detection in distributed environments. In aspects, nodes that are part of the environment each independently create a local wait-for graph. Each node transforms its local wait-for graph to remove non-global transactions that do not need resources from multiple nodes. Each node then sends its transformed local wait-for graph to a global deadlock monitor. The global deadlock monitor combines the local wait-for graphs into a global wait-for graph. Phantom deadlocks are detected and removed from the global wait-for graph. The global deadlock monitor may then detect and resolve deadlocks that involve global transactions.