Commit a data bezpecne na disku?

Petr Novotny Petr.Novotny na antek.cz
Pondělí Březen 27 13:28:21 CEST 2000


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 27 Mar 00, at 12:53, Jan Serak wrote:

> > Samotne provedeni zapisu na UPDATE... muze trvat nekolik hodin.
> > Zapis typu "uzivatel xxx provadi UPDATE... a ja jsem mu potvrdil, ze
> > mam vsechna data" je zlomek sekundy. Pokud je na disku bezpecne
> > zapsana takovato vec, lze pri obnovovani databaze po padu ten
> > UPDATE... provest.
> 
> Stale nerozumim. Co je 'provedeni zapisu na UPDATE'?

To znamena fyzickou zmenu dat v tabulkach. Mam-li pul miliardy 
radku vyhovujicich podmince v UPDATE, je zrejme, ze "kompletni 
provedeni" toho UPDATE bude trvat nekolik hodin. Rozumime si?

> Pri UPDATE
> DBMS neco dela a zcela jiste neco zapisuje, ale co? Do dat? Do logu?

To je to, k cemu se snazim dopidit. Nezajimaji me spekulace 
"mohlo by to byt takto".

> Taky nechapu, co je provedeni (nebo dokonceni?) UPDATE, ktery byl
> spusten pred padem OS, pri obnovovani databaze.

Model:
1. Klient predava databazi data pres UPDATE. (Soucasti UPDATE 
totiz jsou cenna data. Rozumime si?)
2.Klient zavola COMMIT.
3. Navratovy kod prikazu COMMIT je nejaky ekvivalent OK. 
Databaze zacina data zapisovat do hlavni tabulky (treba i nekolik 
milionu zapisu).
4. Dojde k padu databaze, nez #3 skonci.
5. Pouziji nejakou obdobu "fsck" na databazi. Pritom se obnovi 
korektni stav databaze. Provede se i ten UPDATE z kroku #1?

> Pokud hodlate experimentovat se sitovym vypinacem, tak muzete byt
> naprosto klidny: pri takovemto zasahu muzete prijit i o data, ktera
> byla na disk ulozena treba pred 14 dny, a to proste jen proto, ze
> nebyl DBMS regulerne ukoncen. A neni se cemu divit, kdyz takova vec
> dokaze rozhodit treba i filesystem.

filesystem opravim. Mate protipriklad?

Moment, vy se mi ted snazite rict, ze SQL je v jadru nespolehlivy 
protokol? Ze klient nikdy nema jistotu, ze server data prevzal a 
zodpovida za ne? Uf. Jestli mate pravdu, budu muset nektere sve 
nazory prehodnotit.

> Za normalniho stavu v momente, kdy se ukonci COMMIT, je to starost
> DBMS. Tedy v pripade transakcni databaze.

V tom pripade prosim o definici normalniho stavu. Jestli to je "nic 
nespadne, nevypadne proud, neposaha se CRC na disku, neodejde 
RAID atd.", tak teda nic moc :-(

-----BEGIN PGP SIGNATURE-----
Version: PGP 6.0.2 -- QDPGP 2.60 
Comment: http://community.wow.net/grt/qdpgp.html

iQA/AwUBON83xVMwP8g7qbw/EQK/zACgyi3JFjB65hHx5QroYgOvBXMIlfQAoPhk
8Rg4lhshEPGRXVJ0Rkyp4upa
=B6Ki
-----END PGP SIGNATURE-----
--
Petr Novotny, ANTEK CS
Petr.Novotny na antek.cz
http://www.antek.cz
PGP key ID: 0x3BA9BC3F
-- Don't you know there ain't no devil there's just God when he's drunk.
                                                             [Tom Waits]


Další informace o konferenci Databases