«« ( Date ) »» // «« ( Thread ) »» // nastava - 2003

Re: Baze - pravi nacin za resavanje mehanizma pratecih stranica

by Milan Stanojevic
ponedeljak, 25. avgust 2003 - 16:16.

Pre svega, transakcija ne menja svoje pointere, to radi menadzer baze.
Transakcije predstavljaju komande koje izvrsava menadzer baze i na njemu je
da resi sve konfilkte i moguce deadlockove.
Kontraprimer je sasvim na mestu, kljucna stvar je da su podaci u istom
bloku! Ako se promenio podatak B, promenjen je sadrzaj celog bloka, a u
njemu i podatak A. Pravi se nova kopija tog bloka.
Menadzer baze radi sa blokovima na disku.

To sto si ti dobio 8 poena na zadatku je samo tuzna potvrda kvaliteta
nastave iz pojedinih predmeta na nasem fakultetu.

Pozdrav,
Milan


----- Original Message -----
From: "Stojic" <vladas@EUnet.yu>
To: <nastava@titan.etf.bg.ac.yu>
Sent: Monday, August 25, 2003 4:01 PM
Subject: [nastava] Baze - pravi nacin za resavanje mehanizma pratecih
stranica


> Dakle, kada neka transakcija izvrsi Write(X) menja se samo TTS (X) te
> transakcije! Tako sam uradio zadatak na junskom roku i dobio svih 8
bodova.
> Dole navedeni "kontraprimer" nije tacan: transakcija T2 upisuje podatke u
> svoj TTS i PTS za podatak A *tek* kada dodje do Read(A), a ne na pocetku
> svog izvrsavanja, tako da T1.Write(A) ne moze da menja TTS (T2-A) koji u
> momentu T1.Write(A) ne postoji (tj. T2 mu jos ni jednom nije pristupila
bilo
> za citanje bilo za pisanje).
>
>
>
> ========================================================
>
> Ovo je Damjan poslao u februaru.
> Pazite ako se ne promene obe tabele, transakcija 2 cita pogresan podatak.
>
> ----- Original Message -----
> From: Damjan S. Vujnovic
> To: NASTAVA
> Sent: Saturday, February 22, 2003 12:00 PM
> Subject: Re: [nastava] evo roka iz baza
>
>
> Damjan:
> Posle svakog Write(X,xi). I ažuriraš ne samo teku?u tabelu trenutne
> transakcije, ve? i svih ostalih transakcija koje koriste blok na koji se
> odnosi Write(X,xi).
>
> Milan:
> E vidis Bojovic je danas na zalbama rekao da se azurira blok samo tekuce
> transakcije. Meni je to nekako logicnije, jer kako ce inace jedna
> transakcija da menja pointere drugih, odnosno malo bi bilo komplikovano
sve
> to izvesti.
>
> Damjan:
> Molim!? Ovaj primer ti je online i iz glave, ali koliko sada vidim,
> poslužiće svrsi. Podaci A i B su u istom bloku, evo ti i redosled
> izvršavanja (ekvivalentan je sa T1->T2), a ti vidi šta će biti ako posle
> T1:Write(A), ne ažuriraš i TT1 i TT2 (šta će pročitati, a šta treba da
> pročita T2:Read(A))...
>
> |--------|--------|
> | T1 | T2 |
> |--------|--------|
> | |Read(B) |
> | |B:=B+3 |
> | |Write(B)|
> |Read(A) | |
> |A:=A+1 | |
> |Write(A)| |
> | |Read(A) |
> | |A:=A*2 |
> | |Write(A)|
> |Commit | |
> | |Commit |
> |--------|--------|
>
> Jedino što meni pada na pamet je da se ja i ti nismo razumeli. Ja kažem da
> se ažuriraju TT od svih transakcija, a ti govoriš o blokovima (i ja isto
> kažem da se ažurira samo jedan blok: jedan blok, ali sve TT koje imaju
> pokazivač na taj blok).
>
> Poz,
> DSV
>
> -----------------------------------------------------------------
> unsubscribe:
> minimalist@titan.etf.bg.ac.yu?subject=unsubscribe%20nastava
> -----------------------------------------------------------------
>