В информатике , аренды является договор , который дает ее владельцу определенные права на некоторый ресурс в течение ограниченного периода времени. Поскольку она ограничена по времени, аренда является альтернативой блокировке для сериализации ресурсов .
Мотивация
Традиционная блокировка ресурсов предоставляется до тех пор, пока она не будет явно снята блокирующим клиентским процессом. Причины, по которым блокировка не может быть снята, включают:
- Клиент потерпел неудачу перед освобождением ресурсов
- Клиент зашел в тупик при попытке выделить другой ресурс
- Клиент был заблокирован или задержан на необоснованный срок
- Клиент забыл освободить ресурс, возможно, из-за ошибки
- Запрос на освобождение ресурса был утерян
- Менеджер ресурсов отказал или потерял отслеживание указанного ресурса.
Любой из них может привести к прекращению доступности важного повторно используемого ресурса до тех пор, пока система не будет перезагружена. По контракту аренда действительна в течение ограниченного периода, после чего она автоматически истекает, делая ресурс доступным для перераспределения новым клиентом.
История
Термин «лизинг» был применен к этой концепции в 1989 году работы по Cary Г. Грей и Дэвид Р. Cheriton , [1] , но подобные концепции (истекающие лексемы [2] и разрушаемые замки с тайм - аутами [3] ) были использованы в предшествующие системы.
Проблемы
Аренда обычно используется в распределенных системах для приложений, начиная от выделения адресов DHCP и заканчивая блокировкой файлов , но они (сами по себе) не являются полным решением:
- Должны быть какие-то средства уведомления держателя аренды об истечении срока действия и предотвращения того, чтобы агент продолжал полагаться на ресурс. Часто для этого требуется, чтобы все запросы сопровождались токеном доступа , который становится недействительным, если срок аренды истек.
- Если аренда отменяется после того, как владелец аренды начал работу с ресурсом, отзыв может оставить ресурс в скомпрометированном состоянии. В таких ситуациях обычно используются атомарные транзакции, чтобы гарантировать, что незавершенные обновления не имеют никакого эффекта.
Рекомендации
- ^ Грей, Кэри; Дэвид Черитон (декабрь 1989 г.). Аренда: эффективный отказоустойчивый механизм согласованности распределенного файлового кэша . Труды Двенадцатого симпозиума ACM по принципам операционных систем . 23 . С. 202–210. CiteSeerX 10.1.1.115.1696 . DOI : 10.1145 / 74850.74870 . ISBN 978-0897913386.
- ^ Берроуз, М. (декабрь 1988 г.). «Эффективный обмен данными». Технический отчет № 153, Кембриджский университет .
- ^ Стугис, Н; Израиль, Дж. (Июль 1980 г.). «Вопросы проектирования и использования распределенной файловой системы». Обзор операционных систем . 14 (3): 55–69. DOI : 10.1145 / 850697.850705 .