Problemi istodobnog pristupa
nekonzistenta analiza - T1 čita nekoliko elemenata, neko pročita prije, a neke poslje izmjene koju je napravila T2
izgubljena izmjena - T1 pročita i obavi operaciju nad nekim elementom, ali prije zapisivanja taj element pročita, izmjeni i zapiše T2
prljavo čitanje - T1 pročita elemenet prije nego je T2, koja je prije T1 mijenjala taj element, potvrđena
Konfliktne operacije
operacije koje djeluju na isti element i barem je jedna od njih operacija pisanja
Serijska povijest Hs
ako sve operacije iz T1 prethode svim operacijama iz T2
Ekvivalentnost povijesti
Ako je rezultat izvršavanja H1 = rezultatu izvršavanja H2
Serijalizabilna SR, koflikt-serijalizabilna CSR
H je SR ako je ekvivalentna bilo kojoj serijskoj povijesti H2
H je CSR ako sadrži iste operacije kao i neka Hs te ako je svaki par konfliktnih operacija poredan na jednak način
serijalizacijski grad SG
usmjereni graf čiji su čvorovi transakcije, a lukovi konfliktne operacije –> ispituje je li povijest CSR, ako je aciklički onda je CSR
pogled - serijalizabilna povijest VSR
H je VSR …
problemi vezani uz obnovu
obnovljiva povijest RC - transakcija smije biti potvrđena tek nakon što su potvrđene transakcije iz kojih je čitala
- RC ako Tx ima r koji je mjenjala Ty sa w cx mora biti poslje cy
povijest koja izbjegava kaskadno poništavanje ACA - transakcija smije čitati samo one vrijednosti koje su potvrđene, tj. koje je zapisala već potvrđena transakcija
- ACA ako Tx ima r koji mjenja Ty, cy/ay mora biti prije r
striktna povijest ST - niti jedan element se ne smije niti čitati niti pisati dok sve transakcije koje su prije toga pisale u taj element ne završe
- ako prije cx Ty cita/pise u isti element kao i cx nije strikrna
2PL
temeljni
striktni
rigorozni
- svi ključevi se smiju otpustiti tek nakon potvrđivanja transakcije
Menađer zakljulčavanja LM
Potpuni zastoj
T1 čeka zbog T2 ključa i obratno
2PL
prevencija:
Detekcije potpunog zastoja i oporavak
Ključ za izmjenu U ključ
kada T1 zaključa x U ključem
T1 može postaviti U na element koji ima S drugih
ako je x zaključan s U, druge ne smiju staviti U i X
ne moze se promovirati S u U ili X
Ako zna da će pisati mora staviti U ili X, ne može promovirati S u U ili X
MGL zaključavanje ne više razina granulacije
pogodan za kratke transakcije koje pristupaju malom broju elemenata
duge transakcije koje pristupaju velikom broju elemenata
Sablasne n-torke
n-torke koje ne postoje kada T1 postavlja ključeva na n-torke koje zadovoljavaju neki predikat. A transakcija T2 nakon toga unese n-torku koja zadovoljava predikat
Protokol zaključavanja indeksa
T1 postavlja S ključ u listove B stable kada čita s nekim predikatom,
T2 postavlja X ključ u listove B stabla u kojem se nalazi pokazivač na novu n-torku
Anomalije
prljavo čitanje - T1 pročita x prije nego T2 koja je pisala u x završi
neponovljivo čitanje - T1 pročita x, T2 promjeni x, T1 ponovno čita i čita drugu vrijednost
sablasne n-torke - T1 procita skup koji zadovoljava P, T2 unese ili obriše element koji zadovoljava P, kada T1 ponovno pročita skup dobit će drugaciji rezultat
4 razine izolacije
read uncommitted
read committed
repeatable read
serializable
Transparentnost fragmentacije
korisnici ne trebaju voditi racuna o nacinu na koji je relacija fragmentirana
Transparentnost lokacije
korisnici ne trabaju znati u kojem je cvoru alociran koji fragment. potreban im je samo identifikator podatka
Nezavisan s obzirom na mogućnosti obnove
znaci da svaki cvor, nakon sto se na njemu dogodi kvar, moze sam bez komunikacije s drugim cvorovima odluciti o poništavanju ili ponovnom obavljanju svih transakcija koje su se odvijale u trnutku kvara
2PC blokirajuc
Znaci da neki cvor TC ili TM nece moci izvrsiti transakciju ukoliko se dogodila pogreška ili kvar na nekom drugom cvoru. To se dogada u trenutku kada TM prema TC posalje poruku spreman i nalazi se ui stanju čekanja na odluku TC od sudbini globalne transakcije. U tom trenutku se dogodi kvar na vezi prema TC. TM tada ostaje blokiran do nove uspostave veze sa TC-om