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

Baze - pravi nacin za resavanje mehanizma pratecih stranica

by Stojic
ponedeljak, 25. avgust 2003 - 15:52.

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