Erreserba Hirutarrak eta Bi Faseko Erreserbatze Protokoloak (2PL)

Ekonomia3,53 KB

Erreserba Hirutarrak - Erregelak (II)

eta 5. erregelen salbuespenak: erreserbak bihurtu

Zabaldu: T-ek X irakurtzeko erreserbatuta du – T baldin bada X irakurtzeko erreserba duen transakzio bakarra eta WLOCK(X) egikaritzen badu, orduan erreserba zabaltzen da.

Murriztu: T-ek X idazteko erreserbatuta du – T-ek RLOCK(X) egikaritzen badu, erreserba murrizten da – Horrela, beste transakzio batzuek X irakurtzeko erreserba lor dezakete.

Bi Faseko Erreserbatze-protokoloak (2PL)

Transakzioetan erreserbak erabiltze hutsak ez du bermatzen plangintzen serializagarritasuna. Transakzio bakoitzean erreserbatze- eta askatze-eragiketen kokalekuari buruzko protokolo gehigarri bat jarraitu behar da. 2PL protokolo ezagunena da.

2PL protokoloak (I)

Serializagarritasuna bermatzeko, beste erregela bat erabiltzen da:

Transakzio guztietan, erreserba-eragiketa guztiak transakzioko lehen askatze-eragiketaren aurretik doaz.

2PL protokoloak (II)

Transakzioak bi fasetan bana daitezke:

  • Hedapen edo handitze fasea: Erreserba berriak eskura daitezke (edo dauden erreserbak zabaldu). Erreserbak ezin dira askatu (ezta murriztu).
  • Txikitze fasea: Erreserbak aska daitezke (baita murriztu). Ezin dira erreserba berriak lortu (ezta dauden erreserbak zabaldu).

2PL protokoloak - Serializagarritasuna

Froga daiteke plangintza bateko transakzio guztiek bi faseko erreserbatze-protokoloa jarraitzen badute, plangintza serializagarria izatea bermatuta dagoela.

Ez da beharrezkoa plangintzen serializagarritasuna aztertzea:

Bi faseko erreserben erregelak betearaziz, serialigarritasuna ere betearazten da.

2PL protokoloak - Desabantailak

Plangintza batean egon daitekeen konkurrentzia maila muga daiteke:

Plangintzak aztertu behar izan gabe serializagarritasuna bermatzearen truke ordaindu beharreko prezioa da.

Erreserbetan oinarritutako protokoloen arazo ohikoak:

  • Elkarblokeatzea (deadlock)
  • Ahidura (starvation o livelock)

Lehentasunetan oinarritutako protokoloak

2PL protokoloak - 2PL kontserbatzailea edo estatikoa

Transakzio batek atzituko dituen elementu guztiak exekutatzen hasi aurretik erreserbatu behar ditu. Elementuren bat erreserbatu ezin bada, transakzioak ez du elementurik erreserbatuko; aitzitik, elementu guztiak erreserbatzeko prest dauden arte itxaroten du.

2PL protokoloak - 2PL hertsia

2PL-ren aldaera arruntena da. Transakzio batek ez du (idazteko) erreserba baztertzaileetako bat ere askatzen hitzartu edo bertan behera geratu arte. Beste transakzioek ezin dute T-k idatzitako elementu bat irakurri edo idatzi T hitzartu gabe badago: plangintza hertsia. Elkarblokeatzeak eduki ditzake (2PL kontsebartzailearekin konbinatzen ez bada).

2PL protokoloak - 2PL zorrotza

Transakzio batek ez du bere erreserbetako bat ere askatzen hitzartu edo bertan behera geratu arte. 2PL hertsia baino murriztaileagoa da.

Elkarblokeatzea (deadlock) (I)

Transakzio guztiak beste transakzio batek erreserbatutako elementu baten zain egotea.

Arrisku-faktoreak: Elementu kopurua, tamaina, transakzioen luzapena, konpartizio maila, eta abar.

Elkarblokeatzea (deadlock) (II)

Baldintza beharrezkoak:

  • Elkarrekiko bazterketa
  • Erreserba partziala (erretentzio eta itxoite)
  • Jabetza ez-kentzea
  • Itxarote zirkularra

Deskargatu

PDF Word HTML