租约 (计算机科学)

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

动机

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

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

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

历史

术语“租约”(Lease)在1989年由卡里·格雷大衛·切瑞頓英语David Cheriton提出[1],但类似的概念(过期令牌[2]和带有超时的锁[3] )在之前的系统中已有应用。

问题

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

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

参考文献

  1. ^ Gray, Cary; David Cheriton. Leases: An Efficient Fault-Tolerant Mechanism for Distributed File Cache Consistency. Proceedings of the Twelfth ACM Symposium on Operating Systems Principles 23. 1989年12月: 202–210. Bibcode:10.1.1.115.1696 请检查|bibcode=值 (帮助). ISBN 978-0897913386. doi:10.1145/74850.74870. 
  2. ^ Burrows, M. Efficient Data Sharing. Technical Report #153, University of Cambridge. 1988年12月. 
  3. ^ Stugis, H; Israel, J. Issues in the design and use of a distributed file system. Operating Systems Review. 1980年7月, 14 (3): 55–69. doi:10.1145/850697.850705.