Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO...
Transcript of Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO...
![Page 1: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/1.jpg)
Adatbázisok elmélete 24. el oadás
Katona Gyula Y.Budapesti Muszaki és Gazdaságtudományi Egyetem
Számítástudományi Tsz.I. B. 137/b
[email protected]://www.cs.bme.hu/˜kiskat
2005
![Page 2: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/2.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 1/30
Védekezés hibák ellen, helyreállítás (emlékeztet o)
Alapprobléma: nem fut le valamelyik tranzakció (sérül az atomiság) és emiatt inkonzisztenslesz az adatbázis.
Cél az, hogy újra konzisztens állapotba hozzuk az adatbázist (visszacsinálás vagy befejezés)úgy, hogy a tartósság megmaradjon: ha egy tranzakció már befejezte a munkáját, akkorannak hatása ne vesszen el.
![Page 3: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/3.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 1/30
Védekezés hibák ellen, helyreállítás (emlékeztet o)
Alapprobléma: nem fut le valamelyik tranzakció (sérül az atomiság) és emiatt inkonzisztenslesz az adatbázis.
Cél az, hogy újra konzisztens állapotba hozzuk az adatbázist (visszacsinálás vagy befejezés)úgy, hogy a tartósság megmaradjon: ha egy tranzakció már befejezte a munkáját, akkorannak hatása ne vesszen el.
Alapfogalmak (emlékezteto)
COMMIT pont : az a pont, amikor a tranzakció minden érdemi munkával megvan,programhiba vagy ütemezo miatt ABORT már biztos nem lehet.Nem biztos, hogy ekkor minden hatása látszik is már a tranzakciónak, lehet, hogy nincsminden írása véglegesítve, de minden készen áll már erre.
Piszkos adat : Olyan adat, amit még nem COMMIT-ált tranzakció (azaz olyan, aki mégmeghalhat) írt az adatbázisba.Ha ilyet olvas egy másik tranzakció, akkor baj lehet, ha az elso ABORT-ál, de a második nem.
Lavina : egymás után kell ABORT-okat elrendelni a tranzakcióknál piszkos adatból eredo hibamiatt.
![Page 4: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/4.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 2/30
Megoldások piszkos adat és lavina ellen (emlékeztet o)
Különbözo megoldások a tranzakcióhibákból (programhiba vagy rendszer általi ABORT)származó problémákra:
• Olyan tranzakciótól, aki nem COMMIT-ált, nem olvasunk. (Nem olvasunk olyan értéket,amit olyan tranzakció írt, akinek még nem volt COMMIT).
• Hagyjuk, hogy minden tranzakció azt csináljon, amit akar, ha lavina lesz, akkor majdmegoldjuk (UNDO protokoll)
• Zárolási protokollt kényszerítünk a tranzakciókra, ami biztosítja, hogy nem lesz piszkosadatból probléma, lavina:
szigorú 2PL :? 2PL? DB-be írás csak COMMIT után? zárak elengedése csak írás után
Tétel . Ha mindegyik tranzakció a szigorú 2PL protokollt követi, akkor az ütemezés sorosíthatólesz és lavinamentes.
![Page 5: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/5.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 3/30
REDO protokoll-naplózás
Fo szabály:
• Mielott az a lemezen módosítunk egy X adatelemet, a (T, X, v) és a (T, COMMIT)bejegyzést is ki kell írnunk a naplóba.
![Page 6: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/6.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 3/30
REDO protokoll-naplózás
Fo szabály:
• Mielott az a lemezen módosítunk egy X adatelemet, a (T, X, v) és a (T, COMMIT)bejegyzést is ki kell írnunk a naplóba.
REDO protokoll
Ez a szigorú 2PL kiegészítése, vagyis a zárkérések 2PL szerint történnek, ezen felül pedig amuveletek és ezek naplózása az alábbi sorrendben történik:
1. A tranzakciók történéseinek feljegyzése a naplóba, a belso táron:(Ti, BEGIN), (Ti, A, új érték), (Ti, ABORT)
![Page 7: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/7.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 3/30
REDO protokoll-naplózás
Fo szabály:
• Mielott az a lemezen módosítunk egy X adatelemet, a (T, X, v) és a (T, COMMIT)bejegyzést is ki kell írnunk a naplóba.
REDO protokoll
Ez a szigorú 2PL kiegészítése, vagyis a zárkérések 2PL szerint történnek, ezen felül pedig amuveletek és ezek naplózása az alábbi sorrendben történik:
1. A tranzakciók történéseinek feljegyzése a naplóba, a belso táron:(Ti, BEGIN), (Ti, A, új érték), (Ti, ABORT)
2. COMMIT után a napló háttértárra írása
![Page 8: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/8.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 3/30
REDO protokoll-naplózás
Fo szabály:
• Mielott az a lemezen módosítunk egy X adatelemet, a (T, X, v) és a (T, COMMIT)bejegyzést is ki kell írnunk a naplóba.
REDO protokoll
Ez a szigorú 2PL kiegészítése, vagyis a zárkérések 2PL szerint történnek, ezen felül pedig amuveletek és ezek naplózása az alábbi sorrendben történik:
1. A tranzakciók történéseinek feljegyzése a naplóba, a belso táron:(Ti, BEGIN), (Ti, A, új érték), (Ti, ABORT)
2. COMMIT után a napló háttértárra írása
3. Tényleges írás az adatbázisba a háttértáron, nem a pufferben
![Page 9: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/9.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 3/30
REDO protokoll-naplózás
Fo szabály:
• Mielott az a lemezen módosítunk egy X adatelemet, a (T, X, v) és a (T, COMMIT)bejegyzést is ki kell írnunk a naplóba.
REDO protokoll
Ez a szigorú 2PL kiegészítése, vagyis a zárkérések 2PL szerint történnek, ezen felül pedig amuveletek és ezek naplózása az alábbi sorrendben történik:
1. A tranzakciók történéseinek feljegyzése a naplóba, a belso táron:(Ti, BEGIN), (Ti, A, új érték), (Ti, ABORT)
2. COMMIT után a napló háttértárra írása
3. Tényleges írás az adatbázisba a háttértáron, nem a pufferben
4. Zárak elengedése
![Page 10: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/10.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 4/30
Megjegyzések:
• nincs lavina, mert zárelengedés csak COMMIT után
![Page 11: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/11.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 4/30
Megjegyzések:
• nincs lavina, mert zárelengedés csak COMMIT után
• sorosítható, mert 2PL
![Page 12: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/12.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 4/30
Megjegyzések:
• nincs lavina, mert zárelengedés csak COMMIT után
• sorosítható, mert 2PL
• vissza lehet hozni konzisztens állapotba a DB-t, akkor is, ha a belso tár sérül, erre leszmajd mindjárt a REDO helyreállítás
• Különbség a az UNDO protokollhoz képest:? Az adat változás utáni értékét jegyezzük fel a naplóba
![Page 13: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/13.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 4/30
Megjegyzések:
• nincs lavina, mert zárelengedés csak COMMIT után
• sorosítható, mert 2PL
• vissza lehet hozni konzisztens állapotba a DB-t, akkor is, ha a belso tár sérül, erre leszmajd mindjárt a REDO helyreállítás
• Különbség a az UNDO protokollhoz képest:? Az adat változás utáni értékét jegyezzük fel a naplóba? Máshová rakjuk a COMMIT-ot, a kiírás elé
![Page 14: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/14.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 4/30
Megjegyzések:
• nincs lavina, mert zárelengedés csak COMMIT után
• sorosítható, mert 2PL
• vissza lehet hozni konzisztens állapotba a DB-t, akkor is, ha a belso tár sérül, erre leszmajd mindjárt a REDO helyreállítás
• Különbség a az UNDO protokollhoz képest:? Az adat változás utáni értékét jegyezzük fel a naplóba? Máshová rakjuk a COMMIT-ot, a kiírás elé =⇒ megtelhet a puffer
![Page 15: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/15.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 4/30
Megjegyzések:
• nincs lavina, mert zárelengedés csak COMMIT után
• sorosítható, mert 2PL
• vissza lehet hozni konzisztens állapotba a DB-t, akkor is, ha a belso tár sérül, erre leszmajd mindjárt a REDO helyreállítás
• Különbség a az UNDO protokollhoz képest:? Az adat változás utáni értékét jegyezzük fel a naplóba? Máshová rakjuk a COMMIT-ot, a kiírás elé =⇒ megtelhet a puffer? Az UNDO protokoll esetleg túl gyakran akar írni
![Page 16: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/16.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 4/30
Megjegyzések:
• nincs lavina, mert zárelengedés csak COMMIT után
• sorosítható, mert 2PL
• vissza lehet hozni konzisztens állapotba a DB-t, akkor is, ha a belso tár sérül, erre leszmajd mindjárt a REDO helyreállítás
• Különbség a az UNDO protokollhoz képest:? Az adat változás utáni értékét jegyezzük fel a naplóba? Máshová rakjuk a COMMIT-ot, a kiírás elé =⇒ megtelhet a puffer? Az UNDO protokoll esetleg túl gyakran akar írni =⇒ itt el lehet halasztani az írást
![Page 17: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/17.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 5/30
Példa
T t AM BM AD BD Napló
8 8 (T, BEGIN)LOCK(A) 8 8LOCK(B) 8 8READ(A, t) 8 8 8 8t := t · 2 16 8 8 8WRITE(A, t) 16 16 8 8 (T, A, 16)READ(B, t) 8 16 8 8 8t := t · 2 16 16 8 8 8WRITE(B, t) 16 16 16 8 8 (T, B, 16)
(T, COMMIT)(FLUSH LOG)OUTPUT(A) 16 16 16 16 8OUTPUT(B) 16 16 16 16 16UNLOCK(A)UNLOCK(B)
![Page 18: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/18.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 6/30
REDO helyreállítás
Ha rendszerhiba történt és megsérült a belso tár, akkor az alábbiakat tesszük:
1. Minden zárat feloldunk
![Page 19: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/19.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 6/30
REDO helyreállítás
Ha rendszerhiba történt és megsérült a belso tár, akkor az alábbiakat tesszük:
1. Minden zárat feloldunk
2. A napló mentett részét nézzük visszafele, megkeressük azokat a tranzakciókat, amikrevolt már COMMIT (a többi nem érdekes, mert ha még nem volt a COMMIT-juk kimentve,akkor nem is írtak a DB-be)
![Page 20: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/20.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 6/30
REDO helyreállítás
Ha rendszerhiba történt és megsérült a belso tár, akkor az alábbiakat tesszük:
1. Minden zárat feloldunk
2. A napló mentett részét nézzük visszafele, megkeressük azokat a tranzakciókat, amikrevolt már COMMIT (a többi nem érdekes, mert ha még nem volt a COMMIT-juk kimentve,akkor nem is írtak a DB-be)
3. Addig megyünk vissza a naplóban, amíg biztosan konzisztens állapotot nem találunk(eleje vagy CHECKPOINT)
![Page 21: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/21.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 6/30
REDO helyreállítás
Ha rendszerhiba történt és megsérült a belso tár, akkor az alábbiakat tesszük:
1. Minden zárat feloldunk
2. A napló mentett részét nézzük visszafele, megkeressük azokat a tranzakciókat, amikrevolt már COMMIT (a többi nem érdekes, mert ha még nem volt a COMMIT-juk kimentve,akkor nem is írtak a DB-be)
3. Addig megyünk vissza a naplóban, amíg biztosan konzisztens állapotot nem találunk(eleje vagy CHECKPOINT)
4. A COMMIT-tált tranzakciók írásait elolrol kezdve (a legelso COMMIT-ált elejétol)megismételjük (ha már egyszer be volt írva, az se baj, akkor csak felülírjuk ugyanazzal).Ezt meg tudjuk tenni, mert ismerjük az új értékeket.
![Page 22: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/22.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 6/30
REDO helyreállítás
Ha rendszerhiba történt és megsérült a belso tár, akkor az alábbiakat tesszük:
1. Minden zárat feloldunk
2. A napló mentett részét nézzük visszafele, megkeressük azokat a tranzakciókat, amikrevolt már COMMIT (a többi nem érdekes, mert ha még nem volt a COMMIT-juk kimentve,akkor nem is írtak a DB-be)
3. Addig megyünk vissza a naplóban, amíg biztosan konzisztens állapotot nem találunk(eleje vagy CHECKPOINT)
4. A COMMIT-tált tranzakciók írásait elolrol kezdve (a legelso COMMIT-ált elejétol)megismételjük (ha már egyszer be volt írva, az se baj, akkor csak felülírjuk ugyanazzal).Ezt meg tudjuk tenni, mert ismerjük az új értékeket.
5. Minden nem befejezett Ti tranzakcióra (Ti,ABORT)-ot írunk a napló végére, (FLUSH LOG)
![Page 23: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/23.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 7/30
Megjegyzések a REDO helyreállításhoz
• Ha a napló háttértáron van, akkor mindent újra tudunk csinálni, ami meg még nem kerültki, azzal kapcsolatban változtatás se történt, nem kell visszacsinálni semmit.
![Page 24: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/24.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 7/30
Megjegyzések a REDO helyreállításhoz
• Ha a napló háttértáron van, akkor mindent újra tudunk csinálni, ami meg még nem kerültki, azzal kapcsolatban változtatás se történt, nem kell visszacsinálni semmit.
• Ha a helyreállítás során lenne újra hiba, akkor a napló marad, mert az már kint van, ezalapján újra kezdhetjük a helyreállítást.
![Page 25: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/25.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 7/30
Megjegyzések a REDO helyreállításhoz
• Ha a napló háttértáron van, akkor mindent újra tudunk csinálni, ami meg még nem kerültki, azzal kapcsolatban változtatás se történt, nem kell visszacsinálni semmit.
• Ha a helyreállítás során lenne újra hiba, akkor a napló marad, mert az már kint van, ezalapján újra kezdhetjük a helyreállítást.
• Eredmény: a háttértárra kikerült COMMIT-oknak megfelelo tranazakciók eredményelátszik, a többiekébol pedig semmi.
![Page 26: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/26.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 8/30
Példa
T t AM BM AD BD Napló
8 8 (T, BEGIN)LOCK(A) 8 8LOCK(B) 8 8READ(A, t) 8 8 8 8t := t · 2 16 8 8 8WRITE(A, t) 16 16 8 8 (T, A, 16)READ(B, t) 8 16 8 8 8t := t · 2 16 16 8 8 8WRITE(B, t) 16 16 16 8 8 (T, B, 16)
(T, COMMIT)(FLUSH LOG)OUTPUT(A) 16 16 16 16 8OUTPUT(B) 16 16 16 16 16UNLOCK(A)UNLOCK(B)
![Page 27: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/27.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 9/30
Példa
T1 napló(T1, BEGIN)
LOCK(A)LOCK(B)
(T1, A, x)(T1, B, y)
(T1, COMMIT)WRITE(A)WRITE(B)
UNLOCK(A)UNLOCK(B)
(T1, A, x) jelentése: T1 A-ba x-et írjaEkkor a tényleges írás nem történik meg, csaka naplóba kerül ez bele, a tényleges írás csak aCOMMIT után jön.
![Page 28: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/28.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 9/30
Példa
T1 napló(T1, BEGIN)
LOCK(A)LOCK(B)
(T1, A, x)(T1, B, y)
(T1, COMMIT)WRITE(A)WRITE(B)
UNLOCK(A)UNLOCK(B)
(T1, A, x) jelentése: T1 A-ba x-et írjaEkkor a tényleges írás nem történik meg, csaka naplóba kerül ez bele, a tényleges írás csak aCOMMIT után jön.
Ha a belso tár hibája a COMMIT háttértárra írásaelott történik, akkor még semmi valódi írás nem volt,azaz semmit se kell csinálni. Ha azonban a COMMITután van, akkor a naplóban megvan minden utasítás,újra meg lehet csinálni T1-et.
![Page 29: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/29.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 10/30
CHECKPOINT képzése
1. Megtiltjuk új tranzakció indítását
![Page 30: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/30.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 10/30
CHECKPOINT képzése
1. Megtiltjuk új tranzakció indítását
2. Megvárjuk, amíg minden futó tranzakció COMMIT vagy ABORT módon véget ér
![Page 31: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/31.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 10/30
CHECKPOINT képzése
1. Megtiltjuk új tranzakció indítását
2. Megvárjuk, amíg minden futó tranzakció COMMIT vagy ABORT módon véget ér
3. Minden puffert a háttértárra írunk, ekkor az adatbázis állapota biztosan konzisztens lesz
![Page 32: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/32.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 10/30
CHECKPOINT képzése
1. Megtiltjuk új tranzakció indítását
2. Megvárjuk, amíg minden futó tranzakció COMMIT vagy ABORT módon véget ér
3. Minden puffert a háttértárra írunk, ekkor az adatbázis állapota biztosan konzisztens lesz
4. A naplóba beírjuk, hogy CHECKPOINT
![Page 33: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/33.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 10/30
CHECKPOINT képzése
1. Megtiltjuk új tranzakció indítását
2. Megvárjuk, amíg minden futó tranzakció COMMIT vagy ABORT módon véget ér
3. Minden puffert a háttértárra írunk, ekkor az adatbázis állapota biztosan konzisztens lesz
4. A naplóba beírjuk, hogy CHECKPOINT
5. A naplót is háttértárra írjuk
![Page 34: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/34.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 11/30
CHECKPOINT képzése muködés közben
1. A naplóba beírjuk, hogy (START CHECKPOINT (T1, . . . , Tk)), ahol Ti az összes éppenaktív tranzakció
![Page 35: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/35.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 11/30
CHECKPOINT képzése muködés közben
1. A naplóba beírjuk, hogy (START CHECKPOINT (T1, . . . , Tk)), ahol Ti az összes éppenaktív tranzakció
2. A naplót háttértárra írjuk: FLUSH LOG
![Page 36: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/36.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 11/30
CHECKPOINT képzése muködés közben
1. A naplóba beírjuk, hogy (START CHECKPOINT (T1, . . . , Tk)), ahol Ti az összes éppenaktív tranzakció
2. A naplót háttértárra írjuk: FLUSH LOG
3. Az összes olyan adatelemet kiírjuk a lemezre, amit olyan tranzakciók indítottak, amik méga CHECKPOINT elott befejezodtek, de még nem írtak ki mindent a lemezre.
![Page 37: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/37.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 11/30
CHECKPOINT képzése muködés közben
1. A naplóba beírjuk, hogy (START CHECKPOINT (T1, . . . , Tk)), ahol Ti az összes éppenaktív tranzakció
2. A naplót háttértárra írjuk: FLUSH LOG
3. Az összes olyan adatelemet kiírjuk a lemezre, amit olyan tranzakciók indítottak, amik méga CHECKPOINT elott befejezodtek, de még nem írtak ki mindent a lemezre.
4. (END CHECKPOINT) és (FLUSH LOG)
![Page 38: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/38.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 11/30
CHECKPOINT képzése muködés közben
1. A naplóba beírjuk, hogy (START CHECKPOINT (T1, . . . , Tk)), ahol Ti az összes éppenaktív tranzakció
2. A naplót háttértárra írjuk: FLUSH LOG
3. Az összes olyan adatelemet kiírjuk a lemezre, amit olyan tranzakciók indítottak, amik méga CHECKPOINT elott befejezodtek, de még nem írtak ki mindent a lemezre.
4. (END CHECKPOINT) és (FLUSH LOG)
Visszaállítás
• Visszafelé olvasva, ha elobb (END CHECKPOINT) van
![Page 39: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/39.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 11/30
CHECKPOINT képzése muködés közben
1. A naplóba beírjuk, hogy (START CHECKPOINT (T1, . . . , Tk)), ahol Ti az összes éppenaktív tranzakció
2. A naplót háttértárra írjuk: FLUSH LOG
3. Az összes olyan adatelemet kiírjuk a lemezre, amit olyan tranzakciók indítottak, amik méga CHECKPOINT elott befejezodtek, de még nem írtak ki mindent a lemezre.
4. (END CHECKPOINT) és (FLUSH LOG)
Visszaállítás
• Visszafelé olvasva, ha elobb (END CHECKPOINT) van =⇒ elég visszamenni akövetkezo START CHECKPOINT-ig.
![Page 40: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/40.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 11/30
CHECKPOINT képzése muködés közben
1. A naplóba beírjuk, hogy (START CHECKPOINT (T1, . . . , Tk)), ahol Ti az összes éppenaktív tranzakció
2. A naplót háttértárra írjuk: FLUSH LOG
3. Az összes olyan adatelemet kiírjuk a lemezre, amit olyan tranzakciók indítottak, amik méga CHECKPOINT elott befejezodtek, de még nem írtak ki mindent a lemezre.
4. (END CHECKPOINT) és (FLUSH LOG)
Visszaállítás
• Visszafelé olvasva, ha elobb (END CHECKPOINT) van =⇒ elég visszamenni akövetkezo START CHECKPOINT-ig. =⇒ innen elore minden itt szereplo Ti-re és mindenkésobb kezdodo más tranzakcióra REDO
![Page 41: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/41.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 11/30
CHECKPOINT képzése muködés közben
1. A naplóba beírjuk, hogy (START CHECKPOINT (T1, . . . , Tk)), ahol Ti az összes éppenaktív tranzakció
2. A naplót háttértárra írjuk: FLUSH LOG
3. Az összes olyan adatelemet kiírjuk a lemezre, amit olyan tranzakciók indítottak, amik méga CHECKPOINT elott befejezodtek, de még nem írtak ki mindent a lemezre.
4. (END CHECKPOINT) és (FLUSH LOG)
Visszaállítás
• Visszafelé olvasva, ha elobb (END CHECKPOINT) van =⇒ elég visszamenni akövetkezo START CHECKPOINT-ig. =⇒ innen elore minden itt szereplo Ti-re és mindenkésobb kezdodo más tranzakcióra REDO
• Ha elobb (START CHECKPOINT (T1, . . . , Tk))-ot találunk
![Page 42: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/42.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 11/30
CHECKPOINT képzése muködés közben
1. A naplóba beírjuk, hogy (START CHECKPOINT (T1, . . . , Tk)), ahol Ti az összes éppenaktív tranzakció
2. A naplót háttértárra írjuk: FLUSH LOG
3. Az összes olyan adatelemet kiírjuk a lemezre, amit olyan tranzakciók indítottak, amik méga CHECKPOINT elott befejezodtek, de még nem írtak ki mindent a lemezre.
4. (END CHECKPOINT) és (FLUSH LOG)
Visszaállítás
• Visszafelé olvasva, ha elobb (END CHECKPOINT) van =⇒ elég visszamenni akövetkezo START CHECKPOINT-ig. =⇒ innen elore minden itt szereplo Ti-re és mindenkésobb kezdodo más tranzakcióra REDO
• Ha elobb (START CHECKPOINT (T1, . . . , Tk))-ot találunk =⇒ ezek nem mindegyike írta kiadatai (meg esetleg mások sem, amik még késobb kezdodtek)
![Page 43: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/43.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 11/30
CHECKPOINT képzése muködés közben
1. A naplóba beírjuk, hogy (START CHECKPOINT (T1, . . . , Tk)), ahol Ti az összes éppenaktív tranzakció
2. A naplót háttértárra írjuk: FLUSH LOG
3. Az összes olyan adatelemet kiírjuk a lemezre, amit olyan tranzakciók indítottak, amik méga CHECKPOINT elott befejezodtek, de még nem írtak ki mindent a lemezre.
4. (END CHECKPOINT) és (FLUSH LOG)
Visszaállítás
• Visszafelé olvasva, ha elobb (END CHECKPOINT) van =⇒ elég visszamenni akövetkezo START CHECKPOINT-ig. =⇒ innen elore minden itt szereplo Ti-re és mindenkésobb kezdodo más tranzakcióra REDO
• Ha elobb (START CHECKPOINT (T1, . . . , Tk))-ot találunk =⇒ ezek nem mindegyike írta kiadatai (meg esetleg mások sem, amik még késobb kezdodtek) =⇒ elég visszamenni azelozo (START CHECKPOINT)-hoz
![Page 44: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/44.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 11/30
CHECKPOINT képzése muködés közben
1. A naplóba beírjuk, hogy (START CHECKPOINT (T1, . . . , Tk)), ahol Ti az összes éppenaktív tranzakció
2. A naplót háttértárra írjuk: FLUSH LOG
3. Az összes olyan adatelemet kiírjuk a lemezre, amit olyan tranzakciók indítottak, amik méga CHECKPOINT elott befejezodtek, de még nem írtak ki mindent a lemezre.
4. (END CHECKPOINT) és (FLUSH LOG)
Visszaállítás
• Visszafelé olvasva, ha elobb (END CHECKPOINT) van =⇒ elég visszamenni akövetkezo START CHECKPOINT-ig. =⇒ innen elore minden itt szereplo Ti-re és mindenkésobb kezdodo más tranzakcióra REDO
• Ha elobb (START CHECKPOINT (T1, . . . , Tk))-ot találunk =⇒ ezek nem mindegyike írta kiadatai (meg esetleg mások sem, amik még késobb kezdodtek) =⇒ elég visszamenni azelozo (START CHECKPOINT)-hoz =⇒ onnan elore REDO
![Page 45: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/45.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 12/30
Elonyök, hátrányok
A CHECKPOINT ütemezése:
• adott ido letelte után
![Page 46: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/46.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 12/30
Elonyök, hátrányok
A CHECKPOINT ütemezése:
• adott ido letelte után
• adott lefutott tranzakció után
![Page 47: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/47.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 12/30
Elonyök, hátrányok
A CHECKPOINT ütemezése:
• adott ido letelte után
• adott lefutott tranzakció után
Ha ritkák a rendszerhibák, elég ritka CHECKPOINT.
![Page 48: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/48.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 13/30
UNDO/REDO protokoll-naplózás
• UNDO hátránya: COMMIT után mihamarabb írjunk
![Page 49: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/49.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 13/30
UNDO/REDO protokoll-naplózás
• UNDO hátránya: COMMIT után mihamarabb írjunk =⇒ sok írás
![Page 50: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/50.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 13/30
UNDO/REDO protokoll-naplózás
• UNDO hátránya: COMMIT után mihamarabb írjunk =⇒ sok írás
• REDO hátránya: Nem írunk, amíg nincs COMMIT
![Page 51: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/51.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 13/30
UNDO/REDO protokoll-naplózás
• UNDO hátránya: COMMIT után mihamarabb írjunk =⇒ sok írás
• REDO hátránya: Nem írunk, amíg nincs COMMIT =⇒ nagy memóriaigény
![Page 52: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/52.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 13/30
UNDO/REDO protokoll-naplózás
• UNDO hátránya: COMMIT után mihamarabb írjunk =⇒ sok írás
• REDO hátránya: Nem írunk, amíg nincs COMMIT =⇒ nagy memóriaigény
UNDO/REDO
Fo elv:
• Mielott az adatbázis bármely X elemének értékét a lemezen módosítanánk, a (T, X, v,w)naplóbejegyzésnek a lemezre kell kerülnie.
![Page 53: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/53.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 13/30
UNDO/REDO protokoll-naplózás
• UNDO hátránya: COMMIT után mihamarabb írjunk =⇒ sok írás
• REDO hátránya: Nem írunk, amíg nincs COMMIT =⇒ nagy memóriaigény
UNDO/REDO
Fo elv:
• Mielott az adatbázis bármely X elemének értékét a lemezen módosítanánk, a (T, X, v,w)naplóbejegyzésnek a lemezre kell kerülnie.
Nagyobb szabadság, hogy mikor írjunk.
![Page 54: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/54.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 13/30
UNDO/REDO protokoll-naplózás
• UNDO hátránya: COMMIT után mihamarabb írjunk =⇒ sok írás
• REDO hátránya: Nem írunk, amíg nincs COMMIT =⇒ nagy memóriaigény
UNDO/REDO
Fo elv:
• Mielott az adatbázis bármely X elemének értékét a lemezen módosítanánk, a (T, X, v,w)naplóbejegyzésnek a lemezre kell kerülnie.
Nagyobb szabadság, hogy mikor írjunk.Nagyobb méretu napló. =⇒ v,w nagyon nagy is lehet!
![Page 55: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/55.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 14/30
Példa
T t AM BM AD BD Napló
8 8 (T, BEGIN)LOCK(A) 8 8LOCK(B) 8 8READ(A, t) 8 8 8 8t := t · 2 16 8 8 8WRITE(A, t) 16 16 8 8 (T, A, 8, 16)READ(B, t) 8 16 8 8 8t := t · 2 16 16 8 8 8WRITE(B, t) 16 16 16 8 8 (T, B, 8, 16)(FLUSH LOG)OUTPUT(A) 16 16 16 16 8
(T, COMMIT)OUTPUT(B) 16 16 16 16 16UNLOCK(A)UNLOCK(B)
![Page 56: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/56.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 15/30
UNDO/REDO visszaállítás
• A legkorábbitól kezdve állítsuk vissza minden befejezett tranzakció hatását. (REDO)
![Page 57: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/57.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 15/30
UNDO/REDO visszaállítás
• A legkorábbitól kezdve állítsuk vissza minden befejezett tranzakció hatását. (REDO)
• A legutolsótól kezdve állítsuk tegyük semmissé minden be nem fejezett tranzakcióhatását. (UNDO)
![Page 58: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/58.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 16/30
Példa
T t AM BM AD BD Napló
8 8 (T, BEGIN)LOCK(A) 8 8LOCK(B) 8 8READ(A, t) 8 8 8 8t := t · 2 16 8 8 8WRITE(A, t) 16 16 8 8 (T, A, 8, 16)READ(B, t) 8 16 8 8 8t := t · 2 16 16 8 8 8WRITE(B, t) 16 16 16 8 8 (T, B, 8, 16)(FLUSH LOG)OUTPUT(A) 16 16 16 16 8
(T, COMMIT)OUTPUT(B) 16 16 16 16 16UNLOCK(A)UNLOCK(B)
![Page 59: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/59.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 17/30
CHECKPOINT képzés muködés közben
1. Írjuk a naplóba a (START CHECKPOINT (T1, . . . , Tk)) bejegyzést, ahol Ti az összes éppenaktív tranzakció
2. (FULSH LOG)
![Page 60: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/60.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 17/30
CHECKPOINT képzés muködés közben
1. Írjuk a naplóba a (START CHECKPOINT (T1, . . . , Tk)) bejegyzést, ahol Ti az összes éppenaktív tranzakció
2. (FULSH LOG)
3. Írjuk a lemezre az összes piszkos puffert
![Page 61: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/61.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 17/30
CHECKPOINT képzés muködés közben
1. Írjuk a naplóba a (START CHECKPOINT (T1, . . . , Tk)) bejegyzést, ahol Ti az összes éppenaktív tranzakció
2. (FULSH LOG)
3. Írjuk a lemezre az összes piszkos puffert
4. (END CHECKPOINT)
5. (FULSH LOG)
![Page 62: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/62.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 17/30
CHECKPOINT képzés muködés közben
1. Írjuk a naplóba a (START CHECKPOINT (T1, . . . , Tk)) bejegyzést, ahol Ti az összes éppenaktív tranzakció
2. (FULSH LOG)
3. Írjuk a lemezre az összes piszkos puffert
4. (END CHECKPOINT)
5. (FULSH LOG)
Mindenképp elég visszamenni legfeljebb az elozo CHEKPOINT-ig (mint a REDO-nál).
![Page 63: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/63.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 18/30
Példa
(T1, BEGIN)(T1, A, 4, 5)(T2, BEGIN)(T1, COMMIT)(T2, B, 9, 10)(START CHECKPOINT (T2))(T2,C, 14, 15)(T3, BEGIN)(T3, D, 19, 20)(END CHECKPOINT)(T2, COMMIT)(T3, COMMIT)
![Page 64: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/64.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 19/30
Védekezés lemezhiba ellen
• A naplót külön lemezen tartjuk
• Nem dobjuk el a napló CHECKPOINT el otti részét sem
• REDO vagy UNDO/REDO protokollt használunk
![Page 65: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/65.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 19/30
Védekezés lemezhiba ellen
• A naplót külön lemezen tartjuk
• Nem dobjuk el a napló CHECKPOINT el otti részét sem
• REDO vagy UNDO/REDO protokollt használunk
Így elvileg a kezdeti adatbázis ismeretében vissza tudjuk állítani a legutolsó állapotot.
![Page 66: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/66.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 19/30
Védekezés lemezhiba ellen
• A naplót külön lemezen tartjuk
• Nem dobjuk el a napló CHECKPOINT el otti részét sem
• REDO vagy UNDO/REDO protokollt használunk
Így elvileg a kezdeti adatbázis ismeretében vissza tudjuk állítani a legutolsó állapotot.
De a napló egy ido után nagyobb lesz, mint az adatbázis.
=⇒ Idonként archiválunk
![Page 67: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/67.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 20/30
Archiválás muködés közben
Ha leállítjuk a rendszert, nyugodtan lehet menteni.
![Page 68: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/68.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 20/30
Archiválás muködés közben
Ha leállítjuk a rendszert, nyugodtan lehet menteni.
Ha nem lehet leállítani =⇒
![Page 69: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/69.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 20/30
Archiválás muködés közben
Ha leállítjuk a rendszert, nyugodtan lehet menteni.
Ha nem lehet leállítani =⇒
1. (START DUMP) a naplóba
![Page 70: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/70.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 20/30
Archiválás muködés közben
Ha leállítjuk a rendszert, nyugodtan lehet menteni.
Ha nem lehet leállítani =⇒
1. (START DUMP) a naplóba
2. Megfelelo CHECKPOINT kialakítása
![Page 71: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/71.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 20/30
Archiválás muködés közben
Ha leállítjuk a rendszert, nyugodtan lehet menteni.
Ha nem lehet leállítani =⇒
1. (START DUMP) a naplóba
2. Megfelelo CHECKPOINT kialakítása
3. Adatok mentése valamilyen sorrendben
![Page 72: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/72.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 20/30
Archiválás muködés közben
Ha leállítjuk a rendszert, nyugodtan lehet menteni.
Ha nem lehet leállítani =⇒
1. (START DUMP) a naplóba
2. Megfelelo CHECKPOINT kialakítása
3. Adatok mentése valamilyen sorrendben
4. Napló mentése
![Page 73: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/73.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 20/30
Archiválás muködés közben
Ha leállítjuk a rendszert, nyugodtan lehet menteni.
Ha nem lehet leállítani =⇒
1. (START DUMP) a naplóba
2. Megfelelo CHECKPOINT kialakítása
3. Adatok mentése valamilyen sorrendben
4. Napló mentése
5. (END DUMP)
![Page 74: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/74.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 20/30
Archiválás muködés közben
Ha leállítjuk a rendszert, nyugodtan lehet menteni.
Ha nem lehet leállítani =⇒
1. (START DUMP) a naplóba
2. Megfelelo CHECKPOINT kialakítása
3. Adatok mentése valamilyen sorrendben
4. Napló mentése
5. (END DUMP)
Helyreállítás
1. Megkeressük a legutolsó teljes mentést (volt (END DUMP))
![Page 75: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/75.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 20/30
Archiválás muködés közben
Ha leállítjuk a rendszert, nyugodtan lehet menteni.
Ha nem lehet leállítani =⇒
1. (START DUMP) a naplóba
2. Megfelelo CHECKPOINT kialakítása
3. Adatok mentése valamilyen sorrendben
4. Napló mentése
5. (END DUMP)
Helyreállítás
1. Megkeressük a legutolsó teljes mentést (volt (END DUMP))
2. Módosítjuk az adatbázist a napló segítségével a CHECKPOINT-tól kezdve (ezért kellREDO vagy UNDO/REDO)
![Page 76: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/76.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 20/30
Archiválás muködés közben
Ha leállítjuk a rendszert, nyugodtan lehet menteni.
Ha nem lehet leállítani =⇒
1. (START DUMP) a naplóba
2. Megfelelo CHECKPOINT kialakítása
3. Adatok mentése valamilyen sorrendben
4. Napló mentése
5. (END DUMP)
Helyreállítás
1. Megkeressük a legutolsó teljes mentést (volt (END DUMP))
2. Módosítjuk az adatbázist a napló segítségével a CHECKPOINT-tól kezdve (ezért kellREDO vagy UNDO/REDO)
![Page 77: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/77.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 21/30
Osztott adatbázisok
• Adatok vízszintes felosztása
![Page 78: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/78.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 21/30
Osztott adatbázisok
• Adatok vízszintes felosztása? Egy bank több fiókja, saját ügyfelek
![Page 79: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/79.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 21/30
Osztott adatbázisok
• Adatok vízszintes felosztása? Egy bank több fiókja, saját ügyfelek? Üzlethálózat boltjai, saját eladások
![Page 80: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/80.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 21/30
Osztott adatbázisok
• Adatok vízszintes felosztása? Egy bank több fiókja, saját ügyfelek? Üzlethálózat boltjai, saját eladások? Könyvár több fiókkal, saját katalógussal
![Page 81: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/81.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 21/30
Osztott adatbázisok
• Adatok vízszintes felosztása? Egy bank több fiókja, saját ügyfelek? Üzlethálózat boltjai, saját eladások? Könyvár több fiókkal, saját katalógussal
• Adatok függoleges felbontása? Bankban =⇒ ügyfél adatok helyben, hitelkártya adatok a központban
![Page 82: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/82.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 21/30
Osztott adatbázisok
• Adatok vízszintes felosztása? Egy bank több fiókja, saját ügyfelek? Üzlethálózat boltjai, saját eladások? Könyvár több fiókkal, saját katalógussal
• Adatok függoleges felbontása? Bankban =⇒ ügyfél adatok helyben, hitelkártya adatok a központban? Üzletláncban =⇒ eladások helyben, megrendelések a központban
![Page 83: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/83.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 21/30
Osztott adatbázisok
• Adatok vízszintes felosztása? Egy bank több fiókja, saját ügyfelek? Üzlethálózat boltjai, saját eladások? Könyvár több fiókkal, saját katalógussal
• Adatok függoleges felbontása? Bankban =⇒ ügyfél adatok helyben, hitelkártya adatok a központban? Üzletláncban =⇒ eladások helyben, megrendelések a központban
• Adotok többszörözése? Párhuzamosítás miatt
![Page 84: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/84.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 21/30
Osztott adatbázisok
• Adatok vízszintes felosztása? Egy bank több fiókja, saját ügyfelek? Üzlethálózat boltjai, saját eladások? Könyvár több fiókkal, saját katalógussal
• Adatok függoleges felbontása? Bankban =⇒ ügyfél adatok helyben, hitelkártya adatok a központban? Üzletláncban =⇒ eladások helyben, megrendelések a központban
• Adotok többszörözése? Párhuzamosítás miatt? Kommunikáció csökkentése miatt =⇒ gyakran szükséges adatok mindenhol
(címjegyzék, telefonkönyv, chase-elés)
![Page 85: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/85.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 22/30
Osztott tranzakciók
A tranzakciók muveletei most különbözo helyeken történhetnek.
![Page 86: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/86.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 22/30
Osztott tranzakciók
A tranzakciók muveletei most különbözo helyeken történhetnek.
Mikor lesz kész az egész tranzakció?
![Page 87: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/87.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 22/30
Osztott tranzakciók
A tranzakciók muveletei most különbözo helyeken történhetnek.
Mikor lesz kész az egész tranzakció? =⇒ ha minden része kész
![Page 88: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/88.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 22/30
Osztott tranzakciók
A tranzakciók muveletei most különbözo helyeken történhetnek.
Mikor lesz kész az egész tranzakció? =⇒ ha minden része kész
Hogyan vesszük észre? Mi van ha közben ABORT vagy hiba van?
![Page 89: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/89.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 22/30
Osztott tranzakciók
A tranzakciók muveletei most különbözo helyeken történhetnek.
Mikor lesz kész az egész tranzakció? =⇒ ha minden része kész
Hogyan vesszük észre? Mi van ha közben ABORT vagy hiba van?
Példa
Áruházlánc központja lekérdezi minden boltban a mobiltelefon készletet. Ha valahol túl sokvan, átküld belole oda, ahol kevés van.
![Page 90: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/90.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 22/30
Osztott tranzakciók
A tranzakciók muveletei most különbözo helyeken történhetnek.
Mikor lesz kész az egész tranzakció? =⇒ ha minden része kész
Hogyan vesszük észre? Mi van ha közben ABORT vagy hiba van?
Példa
Áruházlánc központja lekérdezi minden boltban a mobiltelefon készletet. Ha valahol túl sokvan, átküld belole oda, ahol kevés van.
=⇒ megszakadhat a kapcsolat menet közben, rossz az algoritmus, stb.
![Page 91: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/91.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 23/30
Kétfázisú véglegesítés (2PC)• Alapelvek? Minden állomás naplózza saját eseményeit
![Page 92: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/92.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 23/30
Kétfázisú véglegesítés (2PC)• Alapelvek? Minden állomás naplózza saját eseményeit? Van egy koordinátor állomás, aki a döntést hozza majd
![Page 93: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/93.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 23/30
Kétfázisú véglegesítés (2PC)• Alapelvek? Minden állomás naplózza saját eseményeit? Van egy koordinátor állomás, aki a döntést hozza majd? Az állomások üzeneteket küldenek egymásnak, ezeket is naplózzák (ki- és bejövot is)
![Page 94: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/94.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 23/30
Kétfázisú véglegesítés (2PC)• Alapelvek? Minden állomás naplózza saját eseményeit? Van egy koordinátor állomás, aki a döntést hozza majd? Az állomások üzeneteket küldenek egymásnak, ezeket is naplózzák (ki- és bejövot is)
• Elso fázis? A koordinátor saját naplójába (T, Felkészül)
![Page 95: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/95.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 23/30
Kétfázisú véglegesítés (2PC)• Alapelvek? Minden állomás naplózza saját eseményeit? Van egy koordinátor állomás, aki a döntést hozza majd? Az állomások üzeneteket küldenek egymásnak, ezeket is naplózzák (ki- és bejövot is)
• Elso fázis? A koordinátor saját naplójába (T, Felkészül)? Ezt mindenhova elküldi (még magának is)
![Page 96: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/96.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 23/30
Kétfázisú véglegesítés (2PC)• Alapelvek? Minden állomás naplózza saját eseményeit? Van egy koordinátor állomás, aki a döntést hozza majd? Az állomások üzeneteket küldenek egymásnak, ezeket is naplózzák (ki- és bejövot is)
• Elso fázis? A koordinátor saját naplójába (T, Felkészül)? Ezt mindenhova elküldi (még magának is)? Ha egy állomás megkapta az üzenetet, eldönti, hogy a nála található részre COMMIT
vagy ABORT lesz majd
![Page 97: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/97.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 23/30
Kétfázisú véglegesítés (2PC)• Alapelvek? Minden állomás naplózza saját eseményeit? Van egy koordinátor állomás, aki a döntést hozza majd? Az állomások üzeneteket küldenek egymásnak, ezeket is naplózzák (ki- és bejövot is)
• Elso fázis? A koordinátor saját naplójába (T, Felkészül)? Ezt mindenhova elküldi (még magának is)? Ha egy állomás megkapta az üzenetet, eldönti, hogy a nála található részre COMMIT
vagy ABORT lesz majd∗ Ha COMMIT várható (már csak ez lenne hátra) =⇒ (T, Készenáll) a saját naplóba
![Page 98: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/98.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 23/30
Kétfázisú véglegesítés (2PC)• Alapelvek? Minden állomás naplózza saját eseményeit? Van egy koordinátor állomás, aki a döntést hozza majd? Az állomások üzeneteket küldenek egymásnak, ezeket is naplózzák (ki- és bejövot is)
• Elso fázis? A koordinátor saját naplójába (T, Felkészül)? Ezt mindenhova elküldi (még magának is)? Ha egy állomás megkapta az üzenetet, eldönti, hogy a nála található részre COMMIT
vagy ABORT lesz majd∗ Ha COMMIT várható (már csak ez lenne hátra) =⇒ (T, Készenáll) a saját naplóba
A koordinátornak elküldeni (T, Készenáll)-t
![Page 99: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/99.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 23/30
Kétfázisú véglegesítés (2PC)• Alapelvek? Minden állomás naplózza saját eseményeit? Van egy koordinátor állomás, aki a döntést hozza majd? Az állomások üzeneteket küldenek egymásnak, ezeket is naplózzák (ki- és bejövot is)
• Elso fázis? A koordinátor saját naplójába (T, Felkészül)? Ezt mindenhova elküldi (még magának is)? Ha egy állomás megkapta az üzenetet, eldönti, hogy a nála található részre COMMIT
vagy ABORT lesz majd∗ Ha COMMIT várható (már csak ez lenne hátra) =⇒ (T, Készenáll) a saját naplóba
A koordinátornak elküldeni (T, Készenáll)-t∗ Ha ABORT várható =⇒ (T, ABORT-Legyen) a saját naplóba
![Page 100: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/100.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 23/30
Kétfázisú véglegesítés (2PC)• Alapelvek? Minden állomás naplózza saját eseményeit? Van egy koordinátor állomás, aki a döntést hozza majd? Az állomások üzeneteket küldenek egymásnak, ezeket is naplózzák (ki- és bejövot is)
• Elso fázis? A koordinátor saját naplójába (T, Felkészül)? Ezt mindenhova elküldi (még magának is)? Ha egy állomás megkapta az üzenetet, eldönti, hogy a nála található részre COMMIT
vagy ABORT lesz majd∗ Ha COMMIT várható (már csak ez lenne hátra) =⇒ (T, Készenáll) a saját naplóba
A koordinátornak elküldeni (T, Készenáll)-t∗ Ha ABORT várható =⇒ (T, ABORT-Legyen) a saját naplóba
A koordinátornak elküldeni (T, ABORT-Legyen)-t
![Page 101: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/101.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 23/30
Kétfázisú véglegesítés (2PC)• Alapelvek? Minden állomás naplózza saját eseményeit? Van egy koordinátor állomás, aki a döntést hozza majd? Az állomások üzeneteket küldenek egymásnak, ezeket is naplózzák (ki- és bejövot is)
• Elso fázis? A koordinátor saját naplójába (T, Felkészül)? Ezt mindenhova elküldi (még magának is)? Ha egy állomás megkapta az üzenetet, eldönti, hogy a nála található részre COMMIT
vagy ABORT lesz majd∗ Ha COMMIT várható (már csak ez lenne hátra) =⇒ (T, Készenáll) a saját naplóba
A koordinátornak elküldeni (T, Készenáll)-t∗ Ha ABORT várható =⇒ (T, ABORT-Legyen) a saját naplóba
A koordinátornak elküldeni (T, ABORT-Legyen)-t? Második fázis∗ Ha a koordinátor a (T, Készenáll)-t megkapta mindenkitol =⇒
![Page 102: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/102.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 23/30
Kétfázisú véglegesítés (2PC)• Alapelvek? Minden állomás naplózza saját eseményeit? Van egy koordinátor állomás, aki a döntést hozza majd? Az állomások üzeneteket küldenek egymásnak, ezeket is naplózzák (ki- és bejövot is)
• Elso fázis? A koordinátor saját naplójába (T, Felkészül)? Ezt mindenhova elküldi (még magának is)? Ha egy állomás megkapta az üzenetet, eldönti, hogy a nála található részre COMMIT
vagy ABORT lesz majd∗ Ha COMMIT várható (már csak ez lenne hátra) =⇒ (T, Készenáll) a saját naplóba
A koordinátornak elküldeni (T, Készenáll)-t∗ Ha ABORT várható =⇒ (T, ABORT-Legyen) a saját naplóba
A koordinátornak elküldeni (T, ABORT-Legyen)-t? Második fázis∗ Ha a koordinátor a (T, Készenáll)-t megkapta mindenkitol =⇒◦ (T, COMMIT) a saját naplójába
![Page 103: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/103.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 23/30
Kétfázisú véglegesítés (2PC)• Alapelvek? Minden állomás naplózza saját eseményeit? Van egy koordinátor állomás, aki a döntést hozza majd? Az állomások üzeneteket küldenek egymásnak, ezeket is naplózzák (ki- és bejövot is)
• Elso fázis? A koordinátor saját naplójába (T, Felkészül)? Ezt mindenhova elküldi (még magának is)? Ha egy állomás megkapta az üzenetet, eldönti, hogy a nála található részre COMMIT
vagy ABORT lesz majd∗ Ha COMMIT várható (már csak ez lenne hátra) =⇒ (T, Készenáll) a saját naplóba
A koordinátornak elküldeni (T, Készenáll)-t∗ Ha ABORT várható =⇒ (T, ABORT-Legyen) a saját naplóba
A koordinátornak elküldeni (T, ABORT-Legyen)-t? Második fázis∗ Ha a koordinátor a (T, Készenáll)-t megkapta mindenkitol =⇒◦ (T, COMMIT) a saját naplójába◦ Mindenhova elküldi a (T, COMMIT-Lesz)-t
![Page 104: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/104.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 23/30
Kétfázisú véglegesítés (2PC)• Alapelvek? Minden állomás naplózza saját eseményeit? Van egy koordinátor állomás, aki a döntést hozza majd? Az állomások üzeneteket küldenek egymásnak, ezeket is naplózzák (ki- és bejövot is)
• Elso fázis? A koordinátor saját naplójába (T, Felkészül)? Ezt mindenhova elküldi (még magának is)? Ha egy állomás megkapta az üzenetet, eldönti, hogy a nála található részre COMMIT
vagy ABORT lesz majd∗ Ha COMMIT várható (már csak ez lenne hátra) =⇒ (T, Készenáll) a saját naplóba
A koordinátornak elküldeni (T, Készenáll)-t∗ Ha ABORT várható =⇒ (T, ABORT-Legyen) a saját naplóba
A koordinátornak elküldeni (T, ABORT-Legyen)-t? Második fázis∗ Ha a koordinátor a (T, Készenáll)-t megkapta mindenkitol =⇒◦ (T, COMMIT) a saját naplójába◦ Mindenhova elküldi a (T, COMMIT-Lesz)-t∗ Ha a koordinátor a (T, ABORT-Legyen)-t kapta legalább egy állomástól
![Page 105: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/105.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 23/30
Kétfázisú véglegesítés (2PC)• Alapelvek? Minden állomás naplózza saját eseményeit? Van egy koordinátor állomás, aki a döntést hozza majd? Az állomások üzeneteket küldenek egymásnak, ezeket is naplózzák (ki- és bejövot is)
• Elso fázis? A koordinátor saját naplójába (T, Felkészül)? Ezt mindenhova elküldi (még magának is)? Ha egy állomás megkapta az üzenetet, eldönti, hogy a nála található részre COMMIT
vagy ABORT lesz majd∗ Ha COMMIT várható (már csak ez lenne hátra) =⇒ (T, Készenáll) a saját naplóba
A koordinátornak elküldeni (T, Készenáll)-t∗ Ha ABORT várható =⇒ (T, ABORT-Legyen) a saját naplóba
A koordinátornak elküldeni (T, ABORT-Legyen)-t? Második fázis∗ Ha a koordinátor a (T, Készenáll)-t megkapta mindenkitol =⇒◦ (T, COMMIT) a saját naplójába◦ Mindenhova elküldi a (T, COMMIT-Lesz)-t∗ Ha a koordinátor a (T, ABORT-Legyen)-t kapta legalább egy állomástól◦ (T, ABORT) a saját naplójába
![Page 106: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/106.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 23/30
Kétfázisú véglegesítés (2PC)• Alapelvek? Minden állomás naplózza saját eseményeit? Van egy koordinátor állomás, aki a döntést hozza majd? Az állomások üzeneteket küldenek egymásnak, ezeket is naplózzák (ki- és bejövot is)
• Elso fázis? A koordinátor saját naplójába (T, Felkészül)? Ezt mindenhova elküldi (még magának is)? Ha egy állomás megkapta az üzenetet, eldönti, hogy a nála található részre COMMIT
vagy ABORT lesz majd∗ Ha COMMIT várható (már csak ez lenne hátra) =⇒ (T, Készenáll) a saját naplóba
A koordinátornak elküldeni (T, Készenáll)-t∗ Ha ABORT várható =⇒ (T, ABORT-Legyen) a saját naplóba
A koordinátornak elküldeni (T, ABORT-Legyen)-t? Második fázis∗ Ha a koordinátor a (T, Készenáll)-t megkapta mindenkitol =⇒◦ (T, COMMIT) a saját naplójába◦ Mindenhova elküldi a (T, COMMIT-Lesz)-t∗ Ha a koordinátor a (T, ABORT-Legyen)-t kapta legalább egy állomástól◦ (T, ABORT) a saját naplójába◦ Mindenhova elküldi a (T, ABORT-Lesz)-t
![Page 107: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/107.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 23/30
Kétfázisú véglegesítés (2PC)• Alapelvek? Minden állomás naplózza saját eseményeit? Van egy koordinátor állomás, aki a döntést hozza majd? Az állomások üzeneteket küldenek egymásnak, ezeket is naplózzák (ki- és bejövot is)
• Elso fázis? A koordinátor saját naplójába (T, Felkészül)? Ezt mindenhova elküldi (még magának is)? Ha egy állomás megkapta az üzenetet, eldönti, hogy a nála található részre COMMIT
vagy ABORT lesz majd∗ Ha COMMIT várható (már csak ez lenne hátra) =⇒ (T, Készenáll) a saját naplóba
A koordinátornak elküldeni (T, Készenáll)-t∗ Ha ABORT várható =⇒ (T, ABORT-Legyen) a saját naplóba
A koordinátornak elküldeni (T, ABORT-Legyen)-t? Második fázis∗ Ha a koordinátor a (T, Készenáll)-t megkapta mindenkitol =⇒◦ (T, COMMIT) a saját naplójába◦ Mindenhova elküldi a (T, COMMIT-Lesz)-t∗ Ha a koordinátor a (T, ABORT-Legyen)-t kapta legalább egy állomástól◦ (T, ABORT) a saját naplójába◦ Mindenhova elküldi a (T, ABORT-Lesz)-t∗ Ha egy állomás a (T, COMMIT-Lesz)-t kapja =⇒ (T, COMMIT)
![Page 108: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/108.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 23/30
Kétfázisú véglegesítés (2PC)• Alapelvek? Minden állomás naplózza saját eseményeit? Van egy koordinátor állomás, aki a döntést hozza majd? Az állomások üzeneteket küldenek egymásnak, ezeket is naplózzák (ki- és bejövot is)
• Elso fázis? A koordinátor saját naplójába (T, Felkészül)? Ezt mindenhova elküldi (még magának is)? Ha egy állomás megkapta az üzenetet, eldönti, hogy a nála található részre COMMIT
vagy ABORT lesz majd∗ Ha COMMIT várható (már csak ez lenne hátra) =⇒ (T, Készenáll) a saját naplóba
A koordinátornak elküldeni (T, Készenáll)-t∗ Ha ABORT várható =⇒ (T, ABORT-Legyen) a saját naplóba
A koordinátornak elküldeni (T, ABORT-Legyen)-t? Második fázis∗ Ha a koordinátor a (T, Készenáll)-t megkapta mindenkitol =⇒◦ (T, COMMIT) a saját naplójába◦ Mindenhova elküldi a (T, COMMIT-Lesz)-t∗ Ha a koordinátor a (T, ABORT-Legyen)-t kapta legalább egy állomástól◦ (T, ABORT) a saját naplójába◦ Mindenhova elküldi a (T, ABORT-Lesz)-t∗ Ha egy állomás a (T, COMMIT-Lesz)-t kapja =⇒ (T, COMMIT)∗ Ha egy állomás a (T, ABORT-Lesz)-t kapja =⇒ (T, ABORT)
![Page 109: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/109.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 24/30
Helyreállítás
Egy adott állomáson:? Ha az utolsó bejegyzés COMMIT, ABORT, COMMIT-Lesz vagy ABORT-Lesz akkor a napló
szerint helyreállítunk
![Page 110: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/110.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 24/30
Helyreállítás
Egy adott állomáson:? Ha az utolsó bejegyzés COMMIT, ABORT, COMMIT-Lesz vagy ABORT-Lesz akkor a napló
szerint helyreállítunk? Ha az utolsó bejegyzés Készenáll, akkor nem világos a helyzet, vagy várunk, vagy
kommunikálunk a többivel, vagy . . .
![Page 111: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/111.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 24/30
Helyreállítás
Egy adott állomáson:? Ha az utolsó bejegyzés COMMIT, ABORT, COMMIT-Lesz vagy ABORT-Lesz akkor a napló
szerint helyreállítunk? Ha az utolsó bejegyzés Készenáll, akkor nem világos a helyzet, vagy várunk, vagy
kommunikálunk a többivel, vagy . . .? Ha nincs semmilyen bejegyzés, akkor ABORT (vagy várunk)
![Page 112: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/112.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 25/30
Osztott zárolás
Ha nincs adattöbbszörözés =⇒√
![Page 113: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/113.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 25/30
Osztott zárolás
Ha nincs adattöbbszörözés =⇒√
Ha van =⇒ összhangban kell tartani a példányokat
![Page 114: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/114.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 25/30
Osztott zárolás
Ha nincs adattöbbszörözés =⇒√
Ha van =⇒ összhangban kell tartani a példányokat =⇒ globális (logikai) LOCK és lokálisLOCK
![Page 115: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/115.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 25/30
Osztott zárolás
Ha nincs adattöbbszörözés =⇒√
Ha van =⇒ összhangban kell tartani a példányokat =⇒ globális (logikai) LOCK és lokálisLOCK
Egyszeru modell
Minden LOCK globális és az egyik állomás nyilvántartja ezeket
![Page 116: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/116.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 25/30
Osztott zárolás
Ha nincs adattöbbszörözés =⇒√
Ha van =⇒ összhangban kell tartani a példányokat =⇒ globális (logikai) LOCK és lokálisLOCK
Egyszeru modell
Minden LOCK globális és az egyik állomás nyilvántartja ezeket zárállomás
![Page 117: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/117.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 25/30
Osztott zárolás
Ha nincs adattöbbszörözés =⇒√
Ha van =⇒ összhangban kell tartani a példányokat =⇒ globális (logikai) LOCK és lokálisLOCK
Egyszeru modell
Minden LOCK globális és az egyik állomás nyilvántartja ezeket zárállomás
Költség: egy LOCK-hoz 3 üzenet =⇒ igénylés, engedélyezés, feloldás
![Page 118: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/118.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 25/30
Osztott zárolás
Ha nincs adattöbbszörözés =⇒√
Ha van =⇒ összhangban kell tartani a példányokat =⇒ globális (logikai) LOCK és lokálisLOCK
Egyszeru modell
Minden LOCK globális és az egyik állomás nyilvántartja ezeket zárállomás
Költség: egy LOCK-hoz 3 üzenet =⇒ igénylés, engedélyezés, feloldás
=⇒ a zárállomás nagyon leterhelt lehet
![Page 119: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/119.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 25/30
Osztott zárolás
Ha nincs adattöbbszörözés =⇒√
Ha van =⇒ összhangban kell tartani a példányokat =⇒ globális (logikai) LOCK és lokálisLOCK
Egyszeru modell
Minden LOCK globális és az egyik állomás nyilvántartja ezeket zárállomás
Költség: egy LOCK-hoz 3 üzenet =⇒ igénylés, engedélyezés, feloldás
=⇒ a zárállomás nagyon leterhelt lehet
Elsodleges példány
Van egy elsodleges példány, ha valaki zárolni akar valamit, akkor az elsodleges példányttároló állomáshoz fordul.
![Page 120: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/120.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 25/30
Osztott zárolás
Ha nincs adattöbbszörözés =⇒√
Ha van =⇒ összhangban kell tartani a példányokat =⇒ globális (logikai) LOCK és lokálisLOCK
Egyszeru modell
Minden LOCK globális és az egyik állomás nyilvántartja ezeket zárállomás
Költség: egy LOCK-hoz 3 üzenet =⇒ igénylés, engedélyezés, feloldás
=⇒ a zárállomás nagyon leterhelt lehet
Elsodleges példány
Van egy elsodleges példány, ha valaki zárolni akar valamit, akkor az elsodleges példányttároló állomáshoz fordul.
Költség: mint elobb, de nem koncentrált forgalom
![Page 121: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/121.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 26/30
Osztott RLOCK/WLOCK
Alapelvek:
• Semelyik két tranzakciónak nem lehet globális WLOCK A-ja
![Page 122: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/122.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 26/30
Osztott RLOCK/WLOCK
Alapelvek:
• Semelyik két tranzakciónak nem lehet globális WLOCK A-ja
• Ha egy tranzakciónak van globális WLOCK A-ja, akkor egy másiknak nem lehet globálisRLOCK A-ja
![Page 123: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/123.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 26/30
Osztott RLOCK/WLOCK
Alapelvek:
• Semelyik két tranzakciónak nem lehet globális WLOCK A-ja
• Ha egy tranzakciónak van globális WLOCK A-ja, akkor egy másiknak nem lehet globálisRLOCK A-ja
• Lehet több tranzakciónak globális RLOCK A-ja
![Page 124: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/124.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 26/30
Osztott RLOCK/WLOCK
Alapelvek:
• Semelyik két tranzakciónak nem lehet globális WLOCK A-ja
• Ha egy tranzakciónak van globális WLOCK A-ja, akkor egy másiknak nem lehet globálisRLOCK A-ja
• Lehet több tranzakciónak globális RLOCK A-ja
• Minden állomás az érvényes globális lock-ok figyelembevételével muködik
![Page 125: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/125.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 26/30
Osztott RLOCK/WLOCK
Alapelvek:
• Semelyik két tranzakciónak nem lehet globális WLOCK A-ja
• Ha egy tranzakciónak van globális WLOCK A-ja, akkor egy másiknak nem lehet globálisRLOCK A-ja
• Lehet több tranzakciónak globális RLOCK A-ja
• Minden állomás az érvényes globális lock-ok figyelembevételével muködik
Hogyan lehet megszerezni egy globális RLOCK-ot vagy WLOCK-ot?
![Page 126: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/126.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 26/30
Osztott RLOCK/WLOCK
Alapelvek:
• Semelyik két tranzakciónak nem lehet globális WLOCK A-ja
• Ha egy tranzakciónak van globális WLOCK A-ja, akkor egy másiknak nem lehet globálisRLOCK A-ja
• Lehet több tranzakciónak globális RLOCK A-ja
• Minden állomás az érvényes globális lock-ok figyelembevételével muködik
Hogyan lehet megszerezni egy globális RLOCK-ot vagy WLOCK-ot? =⇒ többféle modell
![Page 127: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/127.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 26/30
Osztott RLOCK/WLOCK
Alapelvek:
• Semelyik két tranzakciónak nem lehet globális WLOCK A-ja
• Ha egy tranzakciónak van globális WLOCK A-ja, akkor egy másiknak nem lehet globálisRLOCK A-ja
• Lehet több tranzakciónak globális RLOCK A-ja
• Minden állomás az érvényes globális lock-ok figyelembevételével muködik
Hogyan lehet megszerezni egy globális RLOCK-ot vagy WLOCK-ot? =⇒ többféle modell
![Page 128: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/128.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 27/30
WALL (write locks all)
• Globális RLOCK A megszerzéséhez elég egy lokális RLOCK Ai
• Globális WLOCK A megszerzéséhez kell minden lokális WLOCK Ai
![Page 129: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/129.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 27/30
WALL (write locks all)
• Globális RLOCK A megszerzéséhez elég egy lokális RLOCK Ai
• Globális WLOCK A megszerzéséhez kell minden lokális WLOCK Ai
• Globális RLOCK A megszerzése:? Ha az i állomás akar egy RLOCK Ai-t, nem kell üzenni, megnézzük milyen zár van Ai-n? Ha itt WLOCK Ai van, akkor elutasítja a kérést, ha semmi vagy RLOCK Ai, akkor
engedélyezi
![Page 130: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/130.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 27/30
WALL (write locks all)
• Globális RLOCK A megszerzéséhez elég egy lokális RLOCK Ai
• Globális WLOCK A megszerzéséhez kell minden lokális WLOCK Ai
• Globális RLOCK A megszerzése:? Ha az i állomás akar egy RLOCK Ai-t, nem kell üzenni, megnézzük milyen zár van Ai-n? Ha itt WLOCK Ai van, akkor elutasítja a kérést, ha semmi vagy RLOCK Ai, akkor
engedélyezi? Ha engedélyezi, akkor az i állomás felteszi az RLOCK Ai-t =⇒ globális RLOCK A
![Page 131: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/131.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 27/30
WALL (write locks all)
• Globális RLOCK A megszerzéséhez elég egy lokális RLOCK Ai
• Globális WLOCK A megszerzéséhez kell minden lokális WLOCK Ai
• Globális RLOCK A megszerzése:? Ha az i állomás akar egy RLOCK Ai-t, nem kell üzenni, megnézzük milyen zár van Ai-n? Ha itt WLOCK Ai van, akkor elutasítja a kérést, ha semmi vagy RLOCK Ai, akkor
engedélyezi? Ha engedélyezi, akkor az i állomás felteszi az RLOCK Ai-t =⇒ globális RLOCK A
• Globális WLOCK A megszerzése? Ha az i állomás akar egy WLOCK Ai-t, akkor üzen minden másik helyre ahol van A j
![Page 132: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/132.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 27/30
WALL (write locks all)
• Globális RLOCK A megszerzéséhez elég egy lokális RLOCK Ai
• Globális WLOCK A megszerzéséhez kell minden lokális WLOCK Ai
• Globális RLOCK A megszerzése:? Ha az i állomás akar egy RLOCK Ai-t, nem kell üzenni, megnézzük milyen zár van Ai-n? Ha itt WLOCK Ai van, akkor elutasítja a kérést, ha semmi vagy RLOCK Ai, akkor
engedélyezi? Ha engedélyezi, akkor az i állomás felteszi az RLOCK Ai-t =⇒ globális RLOCK A
• Globális WLOCK A megszerzése? Ha az i állomás akar egy WLOCK Ai-t, akkor üzen minden másik helyre ahol van A j
? Ha itt RLOCK A j vagy WLOCK A j van, akkor elutasítja a kérést, ha semmi akkorengedélyezi
![Page 133: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/133.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 27/30
WALL (write locks all)
• Globális RLOCK A megszerzéséhez elég egy lokális RLOCK Ai
• Globális WLOCK A megszerzéséhez kell minden lokális WLOCK Ai
• Globális RLOCK A megszerzése:? Ha az i állomás akar egy RLOCK Ai-t, nem kell üzenni, megnézzük milyen zár van Ai-n? Ha itt WLOCK Ai van, akkor elutasítja a kérést, ha semmi vagy RLOCK Ai, akkor
engedélyezi? Ha engedélyezi, akkor az i állomás felteszi az RLOCK Ai-t =⇒ globális RLOCK A
• Globális WLOCK A megszerzése? Ha az i állomás akar egy WLOCK Ai-t, akkor üzen minden másik helyre ahol van A j
? Ha itt RLOCK A j vagy WLOCK A j van, akkor elutasítja a kérést, ha semmi akkorengedélyezi
? Ha mindenhonnan engedélyezés jött, az i állomás felteszi a WLOCK Ai-t, mindenhovaüzen, hogy WLOCK A j-t =⇒ globális WLOCK A
![Page 134: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/134.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 27/30
WALL (write locks all)
• Globális RLOCK A megszerzéséhez elég egy lokális RLOCK Ai
• Globális WLOCK A megszerzéséhez kell minden lokális WLOCK Ai
• Globális RLOCK A megszerzése:? Ha az i állomás akar egy RLOCK Ai-t, nem kell üzenni, megnézzük milyen zár van Ai-n? Ha itt WLOCK Ai van, akkor elutasítja a kérést, ha semmi vagy RLOCK Ai, akkor
engedélyezi? Ha engedélyezi, akkor az i állomás felteszi az RLOCK Ai-t =⇒ globális RLOCK A
• Globális WLOCK A megszerzése? Ha az i állomás akar egy WLOCK Ai-t, akkor üzen minden másik helyre ahol van A j
? Ha itt RLOCK A j vagy WLOCK A j van, akkor elutasítja a kérést, ha semmi akkorengedélyezi
? Ha mindenhonnan engedélyezés jött, az i állomás felteszi a WLOCK Ai-t, mindenhovaüzen, hogy WLOCK A j-t =⇒ globális WLOCK A
=⇒ Ha az egyik állomás kért és kapott WLOCK A-t, akkor másik nyilván nem kaphat késobbsem WLOCK A-t, sem RLOCK A-t
![Page 135: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/135.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 27/30
WALL (write locks all)
• Globális RLOCK A megszerzéséhez elég egy lokális RLOCK Ai
• Globális WLOCK A megszerzéséhez kell minden lokális WLOCK Ai
• Globális RLOCK A megszerzése:? Ha az i állomás akar egy RLOCK Ai-t, nem kell üzenni, megnézzük milyen zár van Ai-n? Ha itt WLOCK Ai van, akkor elutasítja a kérést, ha semmi vagy RLOCK Ai, akkor
engedélyezi? Ha engedélyezi, akkor az i állomás felteszi az RLOCK Ai-t =⇒ globális RLOCK A
• Globális WLOCK A megszerzése? Ha az i állomás akar egy WLOCK Ai-t, akkor üzen minden másik helyre ahol van A j
? Ha itt RLOCK A j vagy WLOCK A j van, akkor elutasítja a kérést, ha semmi akkorengedélyezi
? Ha mindenhonnan engedélyezés jött, az i állomás felteszi a WLOCK Ai-t, mindenhovaüzen, hogy WLOCK A j-t =⇒ globális WLOCK A
=⇒ Ha az egyik állomás kért és kapott WLOCK A-t, akkor másik nyilván nem kaphat késobbsem WLOCK A-t, sem RLOCK A-t
=⇒ Ha az egyik állomás kért és kapott RLOCK A-t, akkor másik nyilván nem kaphat késobbWLOCK A-t, de kaphat RLOCK A-t
![Page 136: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/136.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 27/30
WALL (write locks all)
• Globális RLOCK A megszerzéséhez elég egy lokális RLOCK Ai
• Globális WLOCK A megszerzéséhez kell minden lokális WLOCK Ai
• Globális RLOCK A megszerzése:? Ha az i állomás akar egy RLOCK Ai-t, nem kell üzenni, megnézzük milyen zár van Ai-n? Ha itt WLOCK Ai van, akkor elutasítja a kérést, ha semmi vagy RLOCK Ai, akkor
engedélyezi? Ha engedélyezi, akkor az i állomás felteszi az RLOCK Ai-t =⇒ globális RLOCK A
• Globális WLOCK A megszerzése? Ha az i állomás akar egy WLOCK Ai-t, akkor üzen minden másik helyre ahol van A j
? Ha itt RLOCK A j vagy WLOCK A j van, akkor elutasítja a kérést, ha semmi akkorengedélyezi
? Ha mindenhonnan engedélyezés jött, az i állomás felteszi a WLOCK Ai-t, mindenhovaüzen, hogy WLOCK A j-t =⇒ globális WLOCK A
=⇒ Ha az egyik állomás kért és kapott WLOCK A-t, akkor másik nyilván nem kaphat késobbsem WLOCK A-t, sem RLOCK A-t
=⇒ Ha az egyik állomás kért és kapott RLOCK A-t, akkor másik nyilván nem kaphat késobbWLOCK A-t, de kaphat RLOCK A-t
![Page 137: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/137.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 28/30
Többségi zárolás
Csak az különbözik, hogy hogyan lehet globális zárat szerezni:
![Page 138: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/138.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 28/30
Többségi zárolás
Csak az különbözik, hogy hogyan lehet globális zárat szerezni:
• Globális RLOCK A megszerzéséhez kell, hogy lokális RLOCK Ai legyen az Ai-ktöbbségén
• Globális WLOCK A megszerzéséhez kell , hogy lokális WLOCK Ai legyen az Ai-ktöbbségén
![Page 139: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/139.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 28/30
Többségi zárolás
Csak az különbözik, hogy hogyan lehet globális zárat szerezni:
• Globális RLOCK A megszerzéséhez kell, hogy lokális RLOCK Ai legyen az Ai-ktöbbségén
• Globális WLOCK A megszerzéséhez kell , hogy lokális WLOCK Ai legyen az Ai-ktöbbségén
=⇒ Több üzenet szükséges az RLOCK megszerzéséhez, de kevesebb a WLOCK-hoz, mintaz elobb.
![Page 140: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/140.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 28/30
Többségi zárolás
Csak az különbözik, hogy hogyan lehet globális zárat szerezni:
• Globális RLOCK A megszerzéséhez kell, hogy lokális RLOCK Ai legyen az Ai-ktöbbségén
• Globális WLOCK A megszerzéséhez kell , hogy lokális WLOCK Ai legyen az Ai-ktöbbségén
=⇒ Több üzenet szükséges az RLOCK megszerzéséhez, de kevesebb a WLOCK-hoz, mintaz elobb.
Miért jó a többségi zárolás?
Két tranzakció nem tud egyszerre WLOCK A-t szerezni, mert mindkettonek a példányok több,mint felére kellene WLOCK-ot kapnia
![Page 141: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/141.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 28/30
Többségi zárolás
Csak az különbözik, hogy hogyan lehet globális zárat szerezni:
• Globális RLOCK A megszerzéséhez kell, hogy lokális RLOCK Ai legyen az Ai-ktöbbségén
• Globális WLOCK A megszerzéséhez kell , hogy lokális WLOCK Ai legyen az Ai-ktöbbségén
=⇒ Több üzenet szükséges az RLOCK megszerzéséhez, de kevesebb a WLOCK-hoz, mintaz elobb.
Miért jó a többségi zárolás?
Két tranzakció nem tud egyszerre WLOCK A-t szerezni, mert mindkettonek a példányok több,mint felére kellene WLOCK-ot kapnia =⇒ van olyan példány, amire mindketto kapna
![Page 142: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/142.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 28/30
Többségi zárolás
Csak az különbözik, hogy hogyan lehet globális zárat szerezni:
• Globális RLOCK A megszerzéséhez kell, hogy lokális RLOCK Ai legyen az Ai-ktöbbségén
• Globális WLOCK A megszerzéséhez kell , hogy lokális WLOCK Ai legyen az Ai-ktöbbségén
=⇒ Több üzenet szükséges az RLOCK megszerzéséhez, de kevesebb a WLOCK-hoz, mintaz elobb.
Miért jó a többségi zárolás?
Két tranzakció nem tud egyszerre WLOCK A-t szerezni, mert mindkettonek a példányok több,mint felére kellene WLOCK-ot kapnia =⇒ van olyan példány, amire mindketto kapna
Hasonlóan nem lehet egy tranzakcióknak WLOCK A-ja, egy másiknak RLOCK A-ja.
![Page 143: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/143.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 28/30
Többségi zárolás
Csak az különbözik, hogy hogyan lehet globális zárat szerezni:
• Globális RLOCK A megszerzéséhez kell, hogy lokális RLOCK Ai legyen az Ai-ktöbbségén
• Globális WLOCK A megszerzéséhez kell , hogy lokális WLOCK Ai legyen az Ai-ktöbbségén
=⇒ Több üzenet szükséges az RLOCK megszerzéséhez, de kevesebb a WLOCK-hoz, mintaz elobb.
Miért jó a többségi zárolás?
Két tranzakció nem tud egyszerre WLOCK A-t szerezni, mert mindkettonek a példányok több,mint felére kellene WLOCK-ot kapnia =⇒ van olyan példány, amire mindketto kapna
Hasonlóan nem lehet egy tranzakcióknak WLOCK A-ja, egy másiknak RLOCK A-ja.
Viszont lehet két különbözo tranzakciónak RLOCK A-ja, hiszen egy példányon is lehet ilyen.
![Page 144: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/144.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 29/30
k az n-bol protokoll
Közös általánosítás:Legyen n, hogy hány példány van A-ból és legyen n ≥ k ≥ d(n + 1)/2e
![Page 145: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/145.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 29/30
k az n-bol protokoll
Közös általánosítás:Legyen n, hogy hány példány van A-ból és legyen n ≥ k ≥ d(n + 1)/2e
• Globális RLOCK A megszerzéséhez kell, hogy lokális RLOCK Ai legyen legalábbn + 1− k db Ai-n
• Globális WLOCK A megszerzéséhez kell , hogy lokális WLOCK Ai legyen legalább k dbAi-n
![Page 146: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/146.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 29/30
k az n-bol protokoll
Közös általánosítás:Legyen n, hogy hány példány van A-ból és legyen n ≥ k ≥ d(n + 1)/2e
• Globális RLOCK A megszerzéséhez kell, hogy lokális RLOCK Ai legyen legalábbn + 1− k db Ai-n
• Globális WLOCK A megszerzéséhez kell , hogy lokális WLOCK Ai legyen legalább k dbAi-n
k = n =⇒WALLk = d(n + 1)/2e =⇒ többségi zárolás
![Page 147: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/147.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 29/30
k az n-bol protokoll
Közös általánosítás:Legyen n, hogy hány példány van A-ból és legyen n ≥ k ≥ d(n + 1)/2e
• Globális RLOCK A megszerzéséhez kell, hogy lokális RLOCK Ai legyen legalábbn + 1− k db Ai-n
• Globális WLOCK A megszerzéséhez kell , hogy lokális WLOCK Ai legyen legalább k dbAi-n
k = n =⇒WALLk = d(n + 1)/2e =⇒ többségi zárolás
k választásával hangolható a költség.
Miért jó a protokoll?
![Page 148: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/148.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 29/30
k az n-bol protokoll
Közös általánosítás:Legyen n, hogy hány példány van A-ból és legyen n ≥ k ≥ d(n + 1)/2e
• Globális RLOCK A megszerzéséhez kell, hogy lokális RLOCK Ai legyen legalábbn + 1− k db Ai-n
• Globális WLOCK A megszerzéséhez kell , hogy lokális WLOCK Ai legyen legalább k dbAi-n
k = n =⇒WALLk = d(n + 1)/2e =⇒ többségi zárolás
k választásával hangolható a költség.
Miért jó a protokoll? =⇒ hasonlóan a többségi bizonyításához
![Page 149: Adatbázisok elmélete 24. eloadás˝ · ADATBÁZISOK ELMÉLETE 24. ELOADÁS˝ 3/30 REDO protokoll-naplózás Fo szabály:˝ Mielott az a lemezen módosítunk egy˝ X adatelemet,](https://reader033.fdocument.pub/reader033/viewer/2022052100/603a373148760146f672d1c1/html5/thumbnails/149.jpg)
ADATBÁZISOK ELMÉLETE 24. ELOADÁS 30/30
Vége
Itt az anyag vége!