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

Re: baze: par pitanja iz transakcija

by Milan Stanojevic
subota, 05. april 2003 - 10:47.

Vec sam odgovarao na sve ovo, ali ajde opet.

> U vezi oporavka sisteme koristeci pratecu stranicu:
> 1. kada se kreiraju (prazne) TT i PT? Kada se startuje transakcija ili
kada
> dodje prva komanda za citanje ili pisanje?
>
> 1:tt i pt se kreiraju kada se startuje stranica (mada u sustini za ispit
ti
> to nije bitno).

Slazem se.

>
>
> 2. kada se kreiraju linkovi u tim tabelama koji ukazuju na stranice na
> disku?
>
> 2: link (bolje pokazivac) na neki podatak se ubacuje u tt i u pt tek kada
se
> prvi put koristi.

Linkovi se ubacuju cim se kreira transakcija! Mozes da ih ne crtas dok se ne
koriste, ali definitivno postoje.

> 3. kada se promeni sadrzaj TT tako da ukazuje na novi blok na disku?
(posle
> write?)
>
> 3: upravo tako, posle svakog write-a, ali ti u tt za transakciju n pratis
> samo write-ove iz transakcije n.

Ovo je pogresno. Postoji jednostavan kontraprimer kada ovo ne radi. Znam da
je Bojovic rekao da se ovako radi, ali ovo nije tacno.

> 4. kada se promeni PT (posle commit?)
>
> 4: Generalno, da. Ali ako je konkurentan redosled izvrsavanja transakcija
> neserijalizovan, trebalo bi ovo da se zabrani. Ukoliko je redosled
> serijalizovan, tada se redosled prepisivanja tt u tp mora izvrsavati po
tom
> redosledu. Pri tom, ako neka transakcija izvrsi commit a nije prva po
> serijalizovanom redosledu, onda bi samo trebalo nekim flag-om da je check-
> iras da je delimicno izvrsena a prepisivanje ostavis za trenutak kada ona
> bude prva koja nije potpuno izvrsena po serijalizovanom redosledu.
>
Tu je naravno problem sta se misli pod onim commit-om na ispitu. Da li je to
zahtev za commit, ili se commit zaista izvrsio. U svakom slucaju,
serijalizovanost i oporavak baze (npr. metod pratecih stranica) ne bi
trebali da imaju ikakve veze medjusobno.

> Inace, da li postoji neki uslov za prolaz na ispitu tipa da se mora
uraditi
> pola transakcija i pola ostalog ili je dovoljno imati ukupno 55 bodova?


> Dovoljno je samo 55 poena, ali transakcije nose oko 52-3 od ukupnih 100.
Nose 50 koliko ja znam.

Milan St.