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