Leasing (informatyka)

W informatyce dzierżawa jest umową , która daje jej posiadaczowi określone prawa do niektórych zasobów na ograniczony okres. Ponieważ jest ograniczona czasowo, dzierżawa jest alternatywą dla blokady serializacji zasobów .

Motywacja

Tradycyjna blokada zasobów jest przyznawana, dopóki nie zostanie jawnie zwolniona przez blokujący proces klienta. Powody, dla których blokada może nie zostać zwolniona, obejmują:

  • Klient nie powiódł się przed zwolnieniem zasobów
  • Klient utknął w martwym punkcie podczas próby przydzielenia innego zasobu
  • Klient został zablokowany lub opóźniony przez nieuzasadniony okres
  • Klient zaniedbał zwolnienie zasobu, być może z powodu błędu
  • Żądanie zwolnienia zasobu zostało utracone
  • Menedżer zasobów nie powiódł się lub stracił śledzenie podanego zasobu

Każda z nich może zakończyć dostępność ważnego zasobu wielokrotnego użytku do czasu zresetowania systemu. Zgodnie z umową dzierżawa jest ważna przez określony czas, po którym automatycznie wygasa, udostępniając zasób do realokacji przez nowego klienta.

Historia

Termin „dzierżawa” został zastosowany do tej koncepcji w artykule Cary'ego G. Graya i Davida R. Cheritona z 1989 r ., Ale podobne koncepcje (wygasające tokeny i łamliwe zamki z przekroczeniem limitu czasu) były używane we wcześniejszych systemach.

Problemy

Dzierżawy są powszechnie stosowane w systemach rozproszonych w aplikacjach od przydzielania adresów DHCP po blokowanie plików , ale nie są one (same w sobie) kompletnym rozwiązaniem:

  • Muszą istnieć środki powiadamiania dzierżawcy o wygaśnięciu i uniemożliwiające agentowi dalsze poleganie na zasobie. Często odbywa się to poprzez wymaganie, aby wszystkim prośbom towarzyszył token dostępu , który jest unieważniany, jeśli powiązana dzierżawa wygasła.
  • Jeśli dzierżawa zostanie odwołana po tym, jak dzierżawca rozpoczął eksploatację zasobu, odwołanie może pozostawić zasób w stanie zagrożenia. W takich sytuacjach często stosuje się transakcje Atomic , aby upewnić się, że aktualizacje, które nie zostaną ukończone, nie przyniosą żadnego efektu.