Sočasno izvajanje transakcij - Mrtva zanka

Iz E-študij, proste zakladnice študentskega znanja

Skoči na: navigacija, iskanje

Pri sočasnem izvajanju transakcij se pojavljata naslednja problema:

  • livelock
Posamezno transakcijo lahko pri odobritvi zaseženja določenega podatka prehitevajo vse ostale transakcije in se s tem njeno čakanje raztegne na nedoločen čas (problem je rešljiv z algoritmi za dodeljevanje zaseženj)
  • mrtva zanka (deadlock)
Zgodi se, ko dve (ali več transakcij) zaseže vsaka svoj podatek, vsaka od njiju pa želi še podatek, ki ga je že zasegla tekmica. Zaradi tega transakciji čakata druga na drugo, in ker se po protokolu sprostijo zaseženi podatki le ob zaključku transakcije, ni čakanja nikoli konec.

Primer

Nastop mrtve zanke, ki lahko nastopi tudi pri PXC:

Sočasno izvajanje transakcij - Mrtva zanka.PNG

Rešitev

Problem mrtve zanke se razreši na dva načina:

  • preprečimo, da se mrtva zanka sploh lahko pojavi, kar rešujemo z enim ali več od naslednjih prijemov: urnikom izvajanja transakcij, vnaprejšnja zahteva po zaseženjih zapisov, ureditev objektov zaseganja, odloča transakcijski program in prekinitev in ponovno izvajanje transakcij
  • odpravimo mrtvo zanko potem, ko je ta že nastopila
Osebna orodja
Imenski prostori
Različice
Dejanja
navigacija

Tiskanje/izvoz
orodja