Lease (computer science)

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.
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: