In computer science, a Lease is a contract that gives its holder specified rights to some resource for a limited period. Because it is time-limited, a lease is an alternative to a lock for resource serialization.
Contents
Motivation
A traditional resource lock is granted until it is explicitly released by the locking client process. Reasons why a lock might not be released include:
Any of these could end the availability of an important reusable resource until the system is reset. By contract, a lease is valid for a limited period, after which it automatically expires, making the resource available for reallocation by a new client.
History
The term 'lease' was applied to this concept in a 1989 paper by Cary G. Gray and David R. Cheriton, but similar concepts (expiring tokens and breakable locks with timeouts) had been used in prior systems.
Problems
Leases are commonly used in distributed systems for applications ranging from DHCP address allocation to file locking, but they are not (by themselves) a complete solution: