Commit a data bezpecne na disku?

Jan Serak sherry na pikebo.cz
Pondělí Březen 27 15:57:44 CEST 2000


Petr Novotny wrote:
> A znovu: Mam zaruku, ze provedena operace je opravdu
> provedena? Nebo to bude jako bych nahral tyden stary backup?
> Pokud nema klient v nejakem okamziku jistotu, ze
> data_jsou_v_databazi_dej_se_co_dej, nelze bezpecne prenaset
> data. Pokud to klient nema ani jak zjistit (protoze, jak mi tu
> naznacujete, ani COMMIT nestaci), pak je mi takova databaze
> silne naprd. A nahanet osm chybejicich fsync() volani pomoci
> milionove investice do hot-swap clusteru mi prijde rada, no,
> zvlastni. Nemate nahodou procenta z prodeje? :-) :-)

Porad dokola si nerozumime v jedine veci. Vy se pidite po odpovedi,
zda zapis na disk zaridi COMMIT, my Vam davame odpoved, ze to
zavisi na tvurci DBMS, ta Vam nestaci, protoze chcete _obecnou_
rovinu, na coz nemuze nikdo z nas rict, ze to COMMIT zaridi
(protoze to proste neni pravda _pro_vsechny_ DBMS), z cehoz podle
Vas plyne ten zaver, ze vsechny DBMS jsou zbytecne, kdyz nejsou schopny
zajistit ani to, co SMTP.

Takze abyste nam nehanil nase databaze, odpovidam takto:

Oracle se na Unixech da nakonfigurovat tak, aby data po skonceni
commitu byla fyzicky na disku. Tahle odpoved Vas urcite neuspokojuje,
protoze pisete klienta, ktery nevi, proti jake databazi pojede.

A jeste poznamcicka terminologicka: co je "jistota, ze
data_jsou_v_databazi_dej_se_co_dej"? Neni to nahodou pouhy
utopisticky ideal? Podle meho je databazova transakce implementovana
presne tak, jak je urcen prusecik mezi skutecnymi potrebami a cenou,
kterou lze za jejich uspokojeni zaplatit. A takto definovana
transakce se v ramci aplikace povazuje za 100% jistotu, protoze
predbehnout vlastni stin proste nejde.

							Jan Serak


Další informace o konferenci Test