Elkarblokeoa Kudeatzeko Protokoloak
Saihesteko Protokoloak
Ez-itxarote Protokoloa
Protokolo honen ezaugarriak:
- T transakzio batek erreserba bat eskuratu ezin badu, berehala bertan behera uzten da eta denbora-tarte bat igaro ondoren berrabiarazten da.
- T transakzioak ez du egiaztatzen elkarblokeatzerik gertatuko den ala ez.
- Bertan behera uzteak eta berrabiarazteak asko egiten dira.
Itxarote Zuhurreko Protokoloa
Ez-itxarote protokoloa hobetzen du. Ti transakzioa X elementua erreserbatzen saiatzen da, baina Tj transakzioak erreserbatuta badu jada:
- Tj blokeatuta ez badago (erreserbatutako beste elementu baten zain ez badago), Ti blokeatu egiten da eta itxaroten uzten da.
- Bestela (Tj blokeatuta badago), Ti bertan behera uzten da.
Elkarblokeatzerik gabeko protokoloa da.
Denbora-mugak (Timeouts)
Funtzionamendua:
- T transakzio batek sistemak definitutako denbora-muga baino luzeago itxaroten badu, sistemak interpretatzen du transakzioa elkarblokeatze-egoeran egon daitekeela eta bertan behera uzten du.
- Ez da benetan egiaztatzen elkarblokeatzea dagoen edo ez.
Detektatzeko Protokoloak: Itxarote-grafoak
Grafoen Eraikitzea
- Exekutatzen ari den transakzio bakoitzeko adabegi bat sortzen da.
- Tj-k X elementu bat erreserbatuta badu eta Ti X-ren zain badago, (Ti → Tj) ertza sortzen da.
- Tj-k X askatzen duenean, aurretik sortutako ertza ezabatzen da.
Elkarblokeatzearen Detekzioa
- Elkarblokeatze-egoera sortuko da, baldin eta soilik baldin itxarote-grafoak ziklo bat badu.
- Soluzioa: Aldaketa gutxien egin dituen transakzioa bertan behera uzten da ("biktima").
Zikloak Detektatzeko Maiztasuna
Noiz detektatu zikloak?
- Aldiro-aldiro.
- Unean exekutatzen ari den transakzio kopuruaren arabera.
- Hainbat transakziok elementuak erreserbatzeko zenbat denboraz itxaron duten kontuan hartuta.
"Biktimak" Hautatzeko Irizpideak
Nola hautatu "biktima"?
- Ez aukeratu:
- Luzaroan exekutatu diren transakzioak.
- Eguneratze asko egin dituzten transakzioak.
- Aukeratu:
- Ziklo bat baino gehiagotan parte hartzen duten transakzioak.
Ahidura (Starvation edo Livelock)
Definizioa eta Arrazoiak
Transakzio batek denbora-tarte mugagabe batez aurrera egin ezin duenean gertatzen da, besteek normaltasunez aurrera jarraitzen duten bitartean.
Arrazoiak:
- Erreserben itxarote-eskema ez-bidezkoa: transakzio batzuei beste batzuen gainetik lehentasuna ematen zaie.
- Behin eta berriz transakzio bera "biktima" gisa hautatzea.
Soluzioak
- Zenbat eta gehiago itxaron, orduan eta lehentasun handiagoa eman transakzioari.
- Lehentasun handiagoa eman askotan bertan behera utzi diren transakzioei.
- Itxaron-Hil eta Zauritu-Itxaron eskemek ahidura eragozten dute.
Granuralitate-mailak
Kontzeptua eta Motak
- Objektu edo elementu bat izan daiteke: atributua, erregistroa, blokea, erlazioa, fitxategia, datu-basea, etab.
- Datu-elementuen tamainari granuralitate deitzen zaio.
- Datu-mota bakoitzeko (atributua, erregistroa, blokea, etab.) giltzarrapo (mota) desberdin bat dago.
Konkurrentzian duen Eragina
Granuralitateak konkurrentzia-mailari eragiten dio:
- Zenbat eta txikiagoa izan datu-elementua, orduan eta handiagoa da konkurrentzia-maila.
- Baina:
- Elementu-kopurua handiagoa da (eta giltzarrapoena ere bai).
- Lankarga handiagoa sortzen da.
- Biltegiratze-leku handiagoa behar da.
Maila Optimoa Aukeratzea
Zein da granuralitate-maila onena?
- Oro har, transakzioek erregistro gutxi atzitzen badituzte: erregistro-maila aukeratu.
- Transakzioek taula bereko erregistro asko atzitzen badituzte: erlazio-maila aukeratu.