租约 (计算机科学)

在计算机科学中，租约授予其持有者在一定期限内对某些资源的特定权利。由于它是有时间限制的，因此租用是资源序列化锁的替代方法。 

 动机 
传统的资源上的锁一直都处于持有状态，直到锁定它的进程显式释放它为止。 可能无法释放锁的原因包括：

 客户端在释放资源之前失效 
 客户端在尝试分配其他资源时陷入僵局 
 客户被阻止或延迟了不合理的时间 
 客户可能由于错误而忘记了释放资源 
 释放资源的请求已丢失 
 资源管理器失效或丢失了对资源的控制 

在重置系统之前，所有这些方法都可能会降低重要的可重用资源的可用性。 相比来说，租约的有效期限是有限的，到期后租约会自动过期，从而使资源可供新客户重新分配。 

 历史 
术语“租约”（）在1989年由卡里·格雷和提出，但类似的概念（过期令牌和带有超时的锁 ）在之前的系统中已有应用。   

 问题   

租约在分布式系统中通常用于从DHCP地址分配到文件锁定的应用程序，但是它们本身不是完整的解决方案：

 必须采取某种方式将到期信息通知租赁持有人，并防止该代理继续依赖该资源。 通常，这是通过要求所有请求都带有访问令牌来完成的 ，如果关联的租约已过期，则该访问令牌将无效。 
 如果在租约所有者开始对资源进行操作后撤销了租约，则这可能会使资源处于受损状态。 在这种情况下，通常使用原子事务来确保未完成的更新不起作用。 

 参考文献 

Category:并发控制