Transakcie Flashcards

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
Q

Kedy sú rozvrhy view-ekvivalentné?

A

rozvrhy sú view-ekvivalentné, ak majú rovnaký efekt na

transakcie (čítania) aj na databázu (zápisy)

26
Q

Ako vieme generovať konflikt-sériovateľné rozvrhy?

A

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
Q

Čo je two-phase locking?

A

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
Q

Čo je UPGL lock?

A

Upgrade lock, kedykoľvek vie požiadať o upgrade na write lock alebo read lock

29
Q

Ako funguje timestamp izolácia?

A

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
Q

Čo je Multiversion concurrency control (MVCC)?

A

slide 40

31
Q

Čo je predpokladom pre obnovu? Čo treba robiť počas behu?

A

Logovať!

32
Q

Aké operácie v obnove robíme pre abortované a aké pre commitované transakcie?

A

UNDO (pre abortované transakcie) a REDO (pre commitované transakcie)

33
Q

Čo je latch?

A

Zámok ktorý sa drží len chvíľu, v tomto prípade:
synchronizácia medzi hardwarom (DMA) a softwarom
(cache manager).

34
Q

Treba riešiť aj read v obnove?

A

Nie, stačí len write

35
Q

Aké dáta sú v log file?

A
  • Začiatok transakcie Ti:
  • Write-operácie transakcie Ti:
  • Commit transakcie Ti:
36
Q

Ako riešime obnovu? Čo robíme vzostupne a čo zostupne?

A

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
Q

zapisujeme najprv do logu alebo do db?

A

do logu

38
Q

Čo je Oneskorený zápis dát (deferred data modification)

A

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
Q

Ako checkpointing skracuje log file?

A

zahoď časť pred záznamom najstaršej

aktívnej transakcie T

40
Q

Kedy je rozvrh obnoviteľný?

A

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
Q

Kedy sa rozvrh vyhýba kaskádovým abortom?

A

Rozvrh sa vyhýba kaskádovým abortom (avoids

cascading aborts, ACA) práve vtedy, ak neobsahuje dirty read

42
Q

Aký rozvrh je striktný?

A

Rozvrh je striktný (strict) práve vtedy, ak neobsahuje

dirty read ani dirty write

43
Q

Čo je dirty write?

A

dirty write je prepisovanie necommitovanej hodnoty zapísanej inou transakciou, ktorá v momente zápisu nebola commitovaná

44
Q

Kedy sú transakcie v deadlocku?

A

Transakcie (niektoré) sú v deadlocku práve vtedy, ak

wait-for graf obsahuje cyklus.