租约 (计算机科学)
在计算机科学中,租约授予其持有者在一定期限内对某些资源的特定权利。由于它是有时间限制的,因此租用是资源序列化锁的替代方法。
动机
传统的资源上的锁一直都处于持有状态,直到锁定它的进程显式释放它为止。 可能无法释放锁的原因包括:
- 客户端在释放资源之前失效
- 客户端在尝试分配其他资源时陷入僵局
- 客户被阻止或延迟了不合理的时间
- 客户可能由于错误而忘记了释放资源
- 释放资源的请求已丢失
- 资源管理器失效或丢失了对资源的控制
在重置系统之前,所有这些方法都可能会降低重要的可重用资源的可用性。 相比来说,租约的有效期限是有限的,到期后租约会自动过期,从而使资源可供新客户重新分配。
历史
术语“租约”(Lease)在1989年由卡里·格雷和大衛·切瑞頓提出[1],但类似的概念(过期令牌[2]和带有超时的锁[3] )在之前的系统中已有应用。
问题
租约在分布式系统中通常用于从DHCP地址分配到文件锁定的应用程序,但是它们本身不是完整的解决方案:
- 必须采取某种方式将到期信息通知租赁持有人,并防止该代理继续依赖该资源。 通常,这是通过要求所有请求都带有访问令牌来完成的 ,如果关联的租约已过期,则该访问令牌将无效。
- 如果在租约所有者开始对资源进行操作后撤销了租约,则这可能会使资源处于受损状态。 在这种情况下,通常使用原子事务来确保未完成的更新不起作用。
参考文献
- ^ 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. - ^ Burrows, M. Efficient Data Sharing. Technical Report #153, University of Cambridge. 1988年12月.
- ^ 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.