Lease机制是最重要的分布式协议,广泛应用于各种实际的分布式系统中。Lease机制最重要的应用是,判断节点状态。Lease是由颁发者授予的在某一有效期内的承诺。办法者一旦发出lease,则无论接收方是否收到,也无论后续接收方处于何种状态,只要lease未过期,颁发者一定严守承诺;另一方面,接收方在lease的有效期内可以使用颁发者的承诺,则一旦lease过期,接收方一定不能继续使用颁发者的承诺。
Lease表示某种承诺,具体的承诺内容可以非常的宽泛。可以使某种权限,例如当需要进行并发控制时,统一时刻只给某一节点颁发lease,只有持有lease的节点才可以修改数据。
Lease机制依赖于有效期,这就要求颁发者和接收者的时钟是同步的。一方面,如果颁发者的始终比接收者慢,则当接收者认为lease已经过期的时候,颁发者依旧认为lease有效。接收者可以用在lease到期前申请新的lease的方式解决这个问题。另一方面,如果颁发者的时钟比接收者的始终快,当颁发者认为lease已经过期的时候,接收者依旧认为lease有效,颁发者可能将lease颁发给其他节点,造成承诺失败,影响系统的正确性。对于这种时钟不同步,实践中的通常做法是将颁发者的有效期设置得比接收者的略大,只需大过时钟误差就可以避免对lease的有效期的影响。
基于lease机制确定节点状态:
<