分布式系统中的死锁检测
在分布式系统中,死锁既无法避免,也无法避免,因为系统太大而无法做到。因此,只能实现死锁检测。分布式系统中死锁检测的技术要求如下:
- 进步 -
该方法应该能够检测到系统中的所有死锁。 - 安全 -
该方法不应检测虚假或幻像死锁。
在分布式系统中检测死锁的方法有三种。它们如下:
- 集中式方法——
在集中式方法中,只有一种负责的资源来检测死锁。这种方式的优点是简单易实现,缺点是一个节点的工作量过大,单点故障(即整个系统依赖一个节点,如果该节点发生故障,整个系统崩溃)。反过来使系统的可靠性降低。 - 分布式方法——
在分布式方法中,不同的节点一起工作来检测死锁。没有单点故障(即,如果该节点发生故障,整个系统崩溃,则整个系统依赖于一个节点),因为工作负载在所有节点之间平均分配。死锁检测的速度也提高了。 - 分层方法 –
这种方法是最有利的。它是分布式系统中死锁检测的集中式和分布式方法的结合。在这种方法中,一些选定的节点或节点集群负责死锁检测,这些选定的节点由单个节点控制。