2011-04-05 48 views
0

人們應該如何使用分佈式互斥算法(例如Maekawa算法)而不是簡單的互斥鎖。簡單的互斥鎖不能在分佈式系統上提供互斥或良好性能的情況是什麼?任何人都可以給我一個具體的例子?分佈式系統上的互斥

+0

如何在分佈式系統上使用簡單的互斥鎖?互斥體在單一系統中工作,因爲必要的構造已經到位以保證排他性。 – Joe 2011-04-05 01:38:58

回答

0

通過一個簡單的互斥體,你的意思是你在多線程編程中使用的普通互斥體?正常的互斥鎖只在一臺機器上可見,因此不會阻止遠程機器上作業之間的競爭條件。這使得它不是首發。

也就是說,通過不使用分佈式互斥鎖,可以獲得更好的平均性能。因此,您可以使用主選舉來確定誰負責一組互斥鎖,然後讓選定的主服務器發送短暫互斥鎖。如果這些互斥鎖永遠不會持續比確定主機關閉並選擇新主機的時間更長的時間,這是安全的。

但是這種策略會導致在整個主選舉過程中互斥鎖獲取被阻止。預計主人將花費很少的時間,但是當它下降時,會對等待時間產生重大影響。如果您關心的最大延遲超過平均資源使用量和平均延遲時間,這可能是不可接受的,並且您每次都需要使用分佈式互斥鎖。