Transakcie Flashcards

(44 cards)

1
Q

Rozvrh je kompletný keď…

A

Rozvrh je kompletný, ak v ňom všetky transakcie končia buď operáciou COMMIT alebo ABORT

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Transakcia je v danom čase aktívna ak…

A

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)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

V histórii sú dve operácie konfliktné ak …

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Dve histórie sú konflikt-ekvivalentné ak…

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Sériový rozvrh

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Konflikt-sériovateľný rozvrh

A

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í

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Precedenčný graf

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Ako vieme testovať sériovateľnosť pomocou precedenčného grafu?

A

Rozvrh je konflikt-sériovateľný práve vtedy, ak jeho

precedenčný graf je acyklický

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Opíš Izoláciu: Zamykanie (locking)

A

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ť

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Aké sú základne typy zámkov?

A

Základné typy zámkov:
• Read-lock (RL): dovoľuje iba čítať
• Write-lock (WL), exclusive-lock: dovoľuje čítať aj písať

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Aké zámky sú kompatibilné a prečo?

A

RL a RL

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Dokáž: Two-phase locking generuje len konflikt-sériovateľné rozvrhy

A

slide 33

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Dá sa každý konflikt-sériovateľný rozvrh vygenerovať two-phase locking algoritmom?

A

Nie, pozri slide 33

r1(X), r2(X), r1(X), w2(X), c1, c2

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Načo sú dobré a dôležité transkacie?

A

Musíme počítať s prístupom k db viac ľudí naraz

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Aké sú podmienky transakcií?

A
  • spránve výsledky
  • obnoviteľnosť
  • konzistentnosť
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Transakcia je program, ktorý …

A

Transakcia je program, ktorý pristupuje k

databáze

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Aká je postupnosť operácií v transakcii?

A
  1. START
  2. READ,WRITE, DELETE, INSERT
  3. COMMIT/ABORT
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Čo je ACID?

A

Požiadavka na transakčný DB systém

Atomicita, Konzistencia, Izolácia, Durabilita

19
Q

Kto/čo sa stará o usmerňovanie transakcií a čo robí?

A

Transakčný databázový systém

poradie vykonávania operácií
riešenie výpadkov a pod.

20
Q

Dôvody pre ABORT transakcie

A

Výpadok na strane klienta, servera, medzi klientom a serverom
Transakcia sa sama rozhodne pre ABORT

21
Q

Čo je rozvrh?

A

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í

22
Q

Aký je sériový rozvrh?

A

Transakcie za sebou

23
Q

Aký je sériovateľný rozvrh?

A

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í

24
Q

transakcia T2 číta X od transakcie T1

A

w1(X) je posledná operácia na X pred r2(X)

25
Kedy sú rozvrhy view-ekvivalentné?
rozvrhy sú view-ekvivalentné, ak majú rovnaký efekt na | transakcie (čítania) aj na databázu (zápisy)
26
Ako vieme generovať konflikt-sériovateľné rozvrhy?
Algoritmus zámkov (lock na dátové objekty), Algoritmus časových pečiatok, Multiversion algoritmus (zapisovanie najprv do lokálnej db), Validačný algoritmus (easy pohoda ale prísne kontroluje commit)
27
Čo je two-phase locking?
Dvojfázové zamykanie 1. Ak transakcia už niekedy urobila unlock, nesmie už nikdy žiadať o ďalší lock. 2. Transakcia musí vlastniť potrebný zámok keď sa pokúša o čítanie/písanie dátového objektu.
28
Čo je UPGL lock?
Upgrade lock, kedykoľvek vie požiadať o upgrade na write lock alebo read lock
29
Ako funguje timestamp izolácia?
Každá transakcia Tdostane pri svojom štarte timestamp. Každý objekt má dve pečiatky: jedna sa aktualizuje keď sa X číta, druhá sa aktualizuje keď sa do X zapisuje. Transakcia nesmie čítať hodnoty, ktoré písala neskôr začatá transakcia Transakcia nesmie písať hodnoty, ktoré čítala alebo písala neskôr začatá transakcia
30
Čo je Multiversion concurrency control (MVCC)?
slide 40
31
Čo je predpokladom pre obnovu? Čo treba robiť počas behu?
Logovať!
32
Aké operácie v obnove robíme pre abortované a aké pre commitované transakcie?
UNDO (pre abortované transakcie) a REDO (pre commitované transakcie)
33
Čo je latch?
Zámok ktorý sa drží len chvíľu, v tomto prípade: synchronizácia medzi hardwarom (DMA) a softwarom (cache manager).
34
Treba riešiť aj read v obnove?
Nie, stačí len write
35
Aké dáta sú v log file?
* Začiatok transakcie Ti: * Write-operácie transakcie Ti: * Commit transakcie Ti:
36
Ako riešime obnovu? Čo robíme vzostupne a čo zostupne?
Undo (necomittnuté) ideme zostupne, teda od konca logu a zapisujeme do db staré hodnoty vo writeoch Potom redo comitnuté a dávame nové hodnoty
37
zapisujeme najprv do logu alebo do db?
do logu
38
Čo je Oneskorený zápis dát (deferred data modification)
write(X) sa síce zapíše do log-file aj do databázy, ale nie do dát na disk, to až po commite. Potom Operáciu UNDO netreba vôbec implementovať.
39
Ako checkpointing skracuje log file?
zahoď časť pred záznamom najstaršej | aktívnej transakcie T
40
Kedy je rozvrh obnoviteľný?
keď pre každú commitovanú transakciu T2 čítajúcu necommitovanú hodnotu od T1 (dirty read) platí, že T1 commituje tiež—a zároveň commit T1 je v tom rozvrhu skôr ako commit T2.
41
Kedy sa rozvrh vyhýba kaskádovým abortom?
Rozvrh sa vyhýba kaskádovým abortom (avoids | cascading aborts, ACA) práve vtedy, ak neobsahuje dirty read
42
Aký rozvrh je striktný?
Rozvrh je striktný (strict) práve vtedy, ak neobsahuje | dirty read ani dirty write
43
Čo je dirty write?
dirty write je prepisovanie necommitovanej hodnoty zapísanej inou transakciou, ktorá v momente zápisu nebola commitovaná
44
Kedy sú transakcie v deadlocku?
Transakcie (niektoré) sú v deadlocku práve vtedy, ak | wait-for graf obsahuje cyklus.