Transakcie Flashcards
(44 cards)
Rozvrh je kompletný keď…
Rozvrh je kompletný, ak v ňom všetky transakcie končia buď operáciou COMMIT alebo ABORT
Transakcia je v danom čase aktívna ak…
Transakcia je v danom čase aktívna, ak v tom čase už začala (t.j. bola vykonaná jej operácia START) a zároveň v tom čase ešte neskončila (t.j. nebola vykonaná jej operácia COMMIT či ABORT)
V histórii sú dve operácie konfliktné ak …
V histórii sú dve operácie konfliktné ak patria rôznym
transakciám, ich operandom je rovnaký objekt a aspoň jedna z tých operácií je write
Dve histórie sú konflikt-ekvivalentné ak…
Dve histórie sú konflikt-ekvivalentné ak
• pozostávajú z rovnakých operácií a
• relatívne poradie každých dvoch konfliktných operácií je rovnaké v oboch históriách
Sériový rozvrh
Rozvrh je sériový ak je kompletný (t.j. každá transakcia
v tom rozvrhu končí commitom alebo abortom) a pre každú dvojicu transakcií T1, T2 platí, že buď všetky operácie T1 v tom rozvrhu predchádzajú operáciám T2 alebo naopak
Konflikt-sériovateľný rozvrh
Rozvrh je konflikt-sériovateľný ak jeho projekcia na
commitované transakcie je konflikt-ekvivalentná niektorému sériovému rozvrhu tých commitovaných transakcií
Precedenčný graf
orientovaný graf, vrcholy sú transakcie, z V1 do V2 je hrana keď existuje konfliktná operácia medzi V1 a V2 a operácia v V1 je skôr ako V2
Ako vieme testovať sériovateľnosť pomocou precedenčného grafu?
Rozvrh je konflikt-sériovateľný práve vtedy, ak jeho
precedenčný graf je acyklický
Opíš Izoláciu: Zamykanie (locking)
Idea: do rozvrhu sa pridajú operácie lock a unlock, ktorými sa zamykajú resp. odomykajú dátové objekty. Transakcia smie dátový objekt čítať/písať len v momente, keď vlastní potrebný zámok na ten objekt. Commit je triviálny, netreba nič kontrolovať
Aké sú základne typy zámkov?
Základné typy zámkov:
• Read-lock (RL): dovoľuje iba čítať
• Write-lock (WL), exclusive-lock: dovoľuje čítať aj písať
Aké zámky sú kompatibilné a prečo?
RL a RL
Dokáž: Two-phase locking generuje len konflikt-sériovateľné rozvrhy
slide 33
Dá sa každý konflikt-sériovateľný rozvrh vygenerovať two-phase locking algoritmom?
Nie, pozri slide 33
r1(X), r2(X), r1(X), w2(X), c1, c2
Načo sú dobré a dôležité transkacie?
Musíme počítať s prístupom k db viac ľudí naraz
Aké sú podmienky transakcií?
- spránve výsledky
- obnoviteľnosť
- konzistentnosť
Transakcia je program, ktorý …
Transakcia je program, ktorý pristupuje k
databáze
Aká je postupnosť operácií v transakcii?
- START
- READ,WRITE, DELETE, INSERT
- COMMIT/ABORT
Čo je ACID?
Požiadavka na transakčný DB systém
Atomicita, Konzistencia, Izolácia, Durabilita
Kto/čo sa stará o usmerňovanie transakcií a čo robí?
Transakčný databázový systém
poradie vykonávania operácií
riešenie výpadkov a pod.
Dôvody pre ABORT transakcie
Výpadok na strane klienta, servera, medzi klientom a serverom
Transakcia sa sama rozhodne pre ABORT
Čo je rozvrh?
postupnosť, ktorá vznikne premiešaním operácií niekoľkých transakcií, vo všeobecnosti nekompletných. Toto premiešanie nie je ľubovoľné—zachováva
poradie operácií jednotlivých transakcií
Aký je sériový rozvrh?
Transakcie za sebou
Aký je sériovateľný rozvrh?
Sériovateľný rozvrh má na transakcie a stav databázy
rovnaký efekt ako niektorý zo sériových rozvrhov, nezávisle od stavu databázy a štruktúry transakcií
transakcia T2 číta X od transakcie T1
w1(X) je posledná operácia na X pred r2(X)