Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

ADATBÁZIS- RENDSZEREK 12. rész: Konkurenciavezérlés.

Hasonló előadás


Az előadások a következő témára: "ADATBÁZIS- RENDSZEREK 12. rész: Konkurenciavezérlés."— Előadás másolata:

1 ADATBÁZIS- RENDSZEREK 12. rész: Konkurenciavezérlés

2 Mi ez? A tranzakciók közötti egymásra hatás az adatbázis- állapot inkonzisztensé válását okozhatja, még akkor is, amikor a tranzakciók külön-külön megőrzik az állapot helyességét, és rendszerhiba sem történt. Szabályozni kell, hogy a különböző tranzakciók egyes lépései milyen sorrendben következzenek egymás után. A lépések szabályozásának a feladatát az ütemező végzi. Azt az általános folyamatot, amely biztosítja, hogy a tranzakciók egyidejű végrehajtása során megőrizzék a konzisztenciát, konkurenciavezérlésnek nevezzük.

3 Kérdés Hogyan biztosítható, hogy a konkurensen végrehajtott tranzakciók megőrizzék az adatbázis-állapot helyességét? Elméleti követelmény: sorbarendezhetőség. Erősebb feltétel: konfliktus-sorbarendezhető- ség. Az ütemezők legfontosabb megvalósítási technikái: zárolás, időbélyegzés, érvényesítés.

4 Soros és sorba rendezhető ütemezések Alapfeltevés: „helyességi elv”: ha miden egyes tranzakciót elkülönítve hajtunk végre, akkor az adatbázist konzisztens állapotból konzisztens állapotba alakítjuk. A gyakorlat: „ütemezéseket” kell tekintenünk, amelyek biztosítják, hogy ugyanazt az eredményt állítják elő, mintha a tranzakciókat egyesével hajtottuk volna végre. A tárgyalandó módszerek azt biztosítják, hogy a tranzakciók csak olyan módon legyenek konkurensen végrehajtva, mintha sorban, egyesével futottak volna le.

5 Ütemezések Def: az ütemezés egy vagy több tranzakció által végrehajtott lényeges műveletek (READ, WRITE) időrendben vett sorozata. Példa: konzisztencia-megszorítás: A=B T1T2 READ(A,t)READ(A,s) t:= t+100 s: = s*2 WRITE(A,t)WRITE(A,s) READ(B,t)READ(B,s) t: = t+100 s:= s*2 WRITE(B,t)WRITE(B,s)

6 Soros ütemezések Def: azt mondjuk, hogy egy ütemezés soros, ha úgy épül fel a tranzakciós műveletekből, hogy először az egyik tranzakció összes műveletét tartalmazza, majd egy másik tranzakció összes műveletét. (T1,T2) T1T2AB 2525 READ(A,t) t:= t+100 WRITE(A,t)125 READ(B,t) WRITE(B,t)125 READ(A,s) s:= s*2 WRITE(A,s)250 READ(B,s) WRITE(B,s)250

7 Soros ütemezések Soros ütemezés másként: (T2,T1) Általában nem várjuk el, hogy az adatbázis végső állapota független legyen a tranzakciók sorrendjétől. T1T2AB 2525 READ(A,s) s:= s*2 WRITE(A,s)50 READ(B,s) WRITE(B,s)50 READ(A,t) t:= t+100 WRITE(A,t)150 READ(B,t) WRITE(B,t)150

8 Sorba rendezhető ütemezések Def: azt mondjuk, hogy egy ütemezés sorba rendezhető, ha ugyanolyan hatással van az adatbázis állapotára, mint valamelyik soros ütemezés, függetlenül attól, hogy mi volt az adatbázis kezdeti állapota. T1T2AB 2525 READ(A,t) t:= t+100 WRITE(A,t)125 READ(A,s) s:= s*2 WRITE(A,s)250 READ(B,t) t:= t+100 WRITE(B,t)125 READ(B,s) s:= s*2 WRITE(B,s)250 Nem soros, de sorba- rendez- hető A=2(c+100) B=2(c+100)

9 Nem sorba rendezhető ütemezések T1T2AB 2525 READ(A,t) t:= t+100 WRITE(A,t)125 READ(A,s) s:= s*2 WRITE(A,s)250 READ(B,s) WRITE(B,s)50 READ(B,t) t:= t+100 WRITE(B,t)150 Nem sorba- rendez- hető A=2*(A+100) B=2*B+100

10 Jelölések T1T2 READ(A,t)READ(A,s) t:= t+100 s: = s*2 WRITE(A,t)WRITE(A,s) READ(B,t)READ(B,s) t: = t+100 s:= s*2 WRITE(B,t)WRITE(B,s) T 1 : r 1 (A);w 1 (A);r 1 (B);w 1 (B); T 2 : r 2 (A);w 2 (A);r 2 (B);w 2 (B);

11 Tehát: T1T2AB 2525 READ(A,t) t:= t+100 WRITE(A,t)125 READ(A,s) s:= s*2 WRITE(A,s)250 READ(B,t) t:= t+100 WRITE(B,t)125 READ(B,s) s:= s*2 WRITE(B,s)250 r1(A);w1(A);r2(A);w2(A);r1(B);w1(B);r2(B);w2(B);

12 Konfliktus-sorbarendezhetőség Konfliktus: olyan egymást követő művelet-pár az ütemezésben, amelynek ha a sorrendjét megcseréljük, akkor legalább az egyik tranzakció viselkedése megváltozhat. Nincsenek konfliktusban: r i (X);r j (Y); r i (X);r j (Y); r i (X);w j (Y);, feltéve, ha X≠Y r i (X);w j (Y);, feltéve, ha X≠Y w i (X);r j (Y);, feltéve, ha X≠Y w i (X);r j (Y);, feltéve, ha X≠Y w i (X);w j (Y);, feltéve, ha X≠Y w i (X);w j (Y);, feltéve, ha X≠YDe: r i (X);w i (Y) konfliktus r i (X);w i (Y) konfliktus w i (X);w j (X) konfliktus w i (X);w j (X) konfliktus r i (X);w i (X) konfliktus r i (X);w i (X) konfliktus

13 Tanulság: Különböző tranzakciók bármely két műveletének sorrendje felcserélhető, hacsak nem Ugyanarra az adatbáziselemre vonatkoznak és Ugyanarra az adatbáziselemre vonatkoznak és Legalább az egyik művelet írás. Legalább az egyik művelet írás. Azt mondjuk, hogy két ütemezés konfliktusekvivalens, ha szomszédos műveletek nem konfliktusos cseréinek sorozatával az egyiket átalakíthatjuk a másikká. Azt mondjuk, hogy egy ütemezés konfliktus- sorbarendezhető, ha konkfliktusekvivalens valamely soros ütemezéssel.

14 Példa r 1 (A);w 1 (A);r 2 (A);w 2 (A);r 1 (B);w 1 (B);r 2 (B);w 2 (B); Áll: ez az ütemezés konfliktus-sorbarendezhető. Biz: r 1 (A);w 1 (A);r 2 (A);w 2 (A);r 1 (B);w 1 (B);r 2 (B);w 2 (B); r 1 (A);w 1 (A);r 2 (A);r 1 (B);w 2 (A);w 1 (B);r 2 (B);w 2 (B); r 1 (A);w 1 (A);r 1 (B);r 2 (A);w 2 (A);w 1 (B);r 2 (B);w 2 (B); r 1 (A);w 1 (A);r 1 (B);r 2 (A);w 1 (B);w 2 (A);r 2 (B);w 2 (B); r 1 (A);w 1 (A);r 1 (B);w 1 (B);r 2 (A);w 2 (A);r 2 (B);w 2 (B);

15 A sorbarendezhetőség biztosítása zárakkal Az ütemező feladata az, hogy megakadályozza az olyan műveleti sorrendeket, amelyek nem sorbarendezhető ütemezésekhez vezetnek. Pl. ún. zárakkal. Az adatbáziselemekre kiadott zárak akadályozzák meg a nem sorbarendezhető viselkedést. A tranzakciók zárolják azokat az adatbáziselemeket, amelyekhez hozzáférnek, hogy megakadályozzák azt, hogy ugyanakkor más tranzakciók is hozzáférjenek ezekhez az elemekhez, mivel ekkor felmerülne a nem sorbarendezhetőség kockázata.

16 Zárak A zárak használatának két értelemben is helyesnek kell lennie, mind a tranzakciók szerkezetére, mind az ütemezők szerkezetére alkalmazva: Tranzakciók konzisztenciája: a tranzakció csak akkor olvashat vagy írhat egy elemet, ha már korábban zárolta az elemet, és még nem oldotta fel a zárat. Ha egy tranzakció zárol egy elemet, akkor később azt fel kell szabadítania. Tranzakciók konzisztenciája: a tranzakció csak akkor olvashat vagy írhat egy elemet, ha már korábban zárolta az elemet, és még nem oldotta fel a zárat. Ha egy tranzakció zárol egy elemet, akkor később azt fel kell szabadítania. Az ütemezések jogszerűsége: nem zárolhatja két tranzakció ugyanazt az elemet, csak úgy, ha az egyik előbb már feloldotta a zárat. Az ütemezések jogszerűsége: nem zárolhatja két tranzakció ugyanazt az elemet, csak úgy, ha az egyik előbb már feloldotta a zárat.

17 Példa (konzisztens tranzakciók jogszerű ütemezése) T1T2AB 2525 l 1 (A);r 1 (A); A:= A+100 w 1 (A);u 1 (A); 125 l 2 (A);r 2 (A); A:= A*2; w 2 (A);u 2 (A); 250 l 2 (B);r 2 (B); B:= B*2; w 2 (B);u 2 (B); 50 l 1 (B);r 1 (B); B:= B+100; w 1 (B);u 1 (B); 150 Sajnos nem sorbarendezhető

18 Kétfázisú zárolás (2FZ) Egy feltétellel biztosítani tudjuk, hogy konzisztens tranzakciók jogszerű ütemezése konfliktus-sorbarendezhető legyen: Minden tranzakcióban minden zárolási művelet megelőzi az összes zárfeloldási műveletet.

19 Példa T1T2AB 2525 l 1 (A);r 1 (A); A:= A+100; w 1 (A);l 1 (B);u 1 (A); 125 l 2 (A);r 2 (A); A:= A*2; w 2 (A); 250 l 2 (B);Elutasítva r 1 (B); B:= B+100; w 1 (B);u 1 (B); 125 l 2 (B);u 2 (A);r 2 (B); B:= B*2; w 2 (B);u 2 (B); 250 Kétfázisú zárolással, konzisztens tranzakciók, jogszerű ütemezése konfliktus-sorbarendezhető.

20 És még… Különböző zármódú zárolási rendszerek léteznek. A sorbarendezhetőség biztosítására más módszerek is léteznek: Időbélyegzés, Időbélyegzés, Érvényesítés. Érvényesítés. (Ezekkel most nem foglalkozunk.)

21 Folytatjuk …


Letölteni ppt "ADATBÁZIS- RENDSZEREK 12. rész: Konkurenciavezérlés."

Hasonló előadás


Google Hirdetések