Transakce

Uživatelský avatar
Trupik
Matfyz(ák|ačka) level III
Příspěvky: 251
Registrován: 3. 1. 2005 14:45
Typ studia: Informatika Mgr.
Kontaktovat uživatele:

Transakce

Příspěvek od Trupik »

Mám trochu problém s těmito cvičeními

Locking - Exc. 2
Jak může vzniknout deadlock u multiversion plánovače založeném na 2PL?

Timestamp - Exc 2
Jak může vzniknout livelock u multiversion plánovače založeném na timestamps?

No a kdyby někdo měl nějaké chytré odpovědi na cvičení v kapitole 7, tak to by bylo taky fajn :wink:
Domovská stránka: http://www.jakubmaly.cz/, blog: http://blog.jakubmaly.cz/
Petice proti olympiádě http://olympiada.nazory.cz

Come on you target for faraway laughter,
Come on you stranger, you legend, you martyr, and shine!
Uživatelský avatar
beaver
Matfyz(ák|ačka) level III
Příspěvky: 189
Registrován: 2. 2. 2007 09:33
Typ studia: Nestuduji ale učím na MFF
Bydliště: Praha

Re: Transakce

Příspěvek od beaver »

Asi uz jdu s krizke po funuse, ale treba se to bude nekomu hodit:
Trupik píše:Locking - Exc. 2
Jak může vzniknout deadlock u multiversion plánovače založeném na 2PL?
Multiversion planovac zalozeny na 2PL pouziva prave dve verze historie. Jedna je "rozdelana", jedna je commitla - pro cteni.
Pouzivaji se 3 typy zamku - R, W a C(ertified), pricemz R a W spolu nekoliduji, ale C koliduje se vsim. Pri commitu se transakce pokusi upgradovat vsechny W na C.
Priklad historie: RL1(X), R1(X), RL2(Y), R2(Y), WL1(Y), W1(Y), C1 - ceka, az bude moct upgradovat WL(Y) na CL(Y) (tj. az 2. txce pusti RL(Y)), WL2(X), C2 - pokusi se upgradovat WL(X) na CL(X), takze ceka na 1, az ji pustu RL(X). Obe txce na sebe ted cekaji v kruhu ... tj. mame tu deadlock. Reseni je jedine - abortovat jednu z txci.
Trupik píše:Locking - Exc. 2
Timestamp - Exc 2
Jak může vzniknout livelock u multiversion plánovače založeném na timestamps?
Livelock = neustale se abortujici transakce. Ke kolizi dojde, pokud se transakce snazi zapsat data, jejich starsi verzi uz cetla mladsi transakce. Napr. mam X verze 5, ktere cetla transakce 7. Transakce 6 tim padem nemuze X zapsat (protoze by psala 6. verzi) a tak je abortovana.
Jednoduchy priklad - mam polozku X, kterou skoro vsichni ctou, ale jen transakce T ji zapisuje. Transakce T navic bezi dlouho (aby spocitala X) a X zapisuje az na konci.
Takze se T rozebehne a zacne pocitat. Mezitim se objevi spousta mladsich transakci, ktere si prectou X. Na konci se T pokusi zapsat X, coz se ji nepovede (protoze uz ho cetli mladsi transakce), tak se abortuje a zkusi to znova. Pokud se ctenari objevuji dostatecne casto, tak se T nikdy nepodari zapsat X.
Trupik píše:Locking - Exc. 2
No a kdyby někdo měl nějaké chytré odpovědi na cvičení v kapitole 7, tak to by bylo taky fajn :wink:
1) Transakcni monitor. Obrazek sem asi nenacpu, ale zhruba. TPM (Transaction Processing Monitor) spojuje predevsim spojuje klienty a servery. Klientum umoznuje zakladat a ridit transakce. Pozadavky dispatchuje na servery. Servery jsou typicky startovany on demand a obsahuji pouze business logiku. Servery predavaji pozadavky Resource managerum. Commit (2PC) ridi opet TPM. TPM se stara jeste o dalsi veci - recovery, logging, load balancing (frontovani pozadavku) apod.

2) Doporucuji popsat OTS z CORBA. Viz slajdy 19-SLD-Example-CORBA-OTS.pdf

3) Ja osobne bych tady asi popisoval Activity service. Viz 21-SLD-Example-CORBA-AS.pdf
Cožpak většina z nás svým způsobem nehledá svou kravičku?
T. Pratchett, z knihy "Kdepak je má kravička"
Uživatelský avatar
Trupik
Matfyz(ák|ačka) level III
Příspěvky: 251
Registrován: 3. 1. 2005 14:45
Typ studia: Informatika Mgr.
Kontaktovat uživatele:

Re: Transakce

Příspěvek od Trupik »

Ano, už trochu pozdě:)

Jen k tomu timestamps livelocku - myslím, že ten tvůj příklad není úplně nejlepší, protože pořád se budou objevovat transakce, které úspěšně commitují (čtenáři).

Co takhle:
T1: w(x) w(y)
T2: r(x) r(y)
w1(x1) r2(x1) r2(y0) w1(y1)
zápis w1 je odmítnut (příliš pozdě, r2 má vyšší timestamp a přitom četlo starší verzi) => abortuje se T1, ale T1 již zapsalo x1, kterou četlo r2, takže T2 se musí abortovat taky. Potom pokud scheduler naplánuje stejně, je to livelock.
Domovská stránka: http://www.jakubmaly.cz/, blog: http://blog.jakubmaly.cz/
Petice proti olympiádě http://olympiada.nazory.cz

Come on you target for faraway laughter,
Come on you stranger, you legend, you martyr, and shine!
QZuzka
Matfyz(ák|ačka) level III
Příspěvky: 209
Registrován: 2. 12. 2007 19:51
Typ studia: Informatika Mgr.
Bydliště: Praha 4

Re: Transakce

Příspěvek od QZuzka »

Na předtermínu ve čtvrtek bude prvních pár minut referát o současných MTTF, takže stačí naučit se všechno ostatní :)
Odpovědět

Zpět na „NDBI016 Transakce“