Zalohovaci software - testovanie

Michal Kubecek mike na mk-sys.cz
Pátek Červenec 23 18:05:39 CEST 2004


On Fri, Jul 23, 2004 at 03:45:44PM +0200, Ing. Pavel PaJaSoft Janoušek wrote:
> > -----Original Message-----
> > From: Michal Kubecek [mailto:mike na mk-sys.cz] 
> > Přesně tak. Pokud klient provede dvě části atomické operace pod dvěma
> > samostatnými transakcemi, server nepozná, že je to chyba. Použije-li
> 
> 	Mozna mluvime jinym jazykem, ale bud je to atomicka operace -
> jak ji lze rozdelit? Nebo to neni atomicka operace, ale soubor operaci,
> ktere chceme aby na venek byly atomicke - jiny pripad "mezi" si neumim
> namodelovat ani predstavit... Co jste mel na mysli Vy? A transakce jsou
> druhý případ v mém chápaní, proto nevím co to je atomická operace pod
> dvěma samostatnými transakcemi...

Pochopil jste mne naprosto správně. Myslím tím složenou operaci (např.
zápis do dvou tabulek), která má ovšem být provedena jako atomická.
Chtěl jsem zdůraznit, že je to klient, resp. jeho autor, kdo rozhoduje o
tom, co vlastně provede v jedné transakci. Pokud zvolí špatně, pak ho
pochopitelně server nezachrání. Ono je to sice samozřejmé, ale bohužel
mám zkušenost, že se na to přesto často zapomíná.

> 	To jistě že ne, ale chcete říci, že někdo v pudu nesebezáchovy
> implementuje transakce tak, že na konci po commit a návratu do aplikace
> jsou stále data pouze v paměti, která je třeba nějak dostupná prosředku
> IPC a tedy nezapsaná na médium?

Vůbec ne. Ale problém je, že sama operace zápisu transakce na disk
nemusí být atomická z pohledu nižších vrstev systému. Navíc, jak už
podotkli jiní, mnohé systémy nenabízejí dostatečně spolehlivé nástroje
k tomu, aby mohl program zajistit, že data, která se rozhodl zapsat na
disk, tam opravdu budou.

> > nebudu považovat za chybu procesoru, že mne jeho systém ochran paměti
> > nechrání před vadou paměťového čipu.
> 
> 	Skutečně? A co HW přerušení přesně pro tyto účely?

To je ovšem pro případ, že to procesor/systém zjistí. Ale on to vůbec
zjistit nemusí. Mám ve skříni jeden DIMM, na kterém memtest86 zjistí
chybu v jednom bitu, která se navíc projeví v jednom jediném testu. Ten
DIMM jsem měl asi půl roku v počítači (ne serveru), aniž bych pozoroval
nějaké problémy. Ale jistě si dokážeme oba představit, že ta konkrétní
shoda operací, která chybu vyvolá, by klidně mohla nastat v tom naprosto
nejnevhodnějším okamžiku v kritickém místě kritické aplikace.

> 	Ale pokud si databáze tyto operace NEUMÍ zajistit, pak ACID
> přístup nesplňuje a tedy není ACID databází - jak to zajišťuje je již
> otázka komunikace mezi databázovým engine a hostitelským systémem ať už
> tím myslíme cokoli (od SW OS až po HW chip (bez firmware, ale hradlove
> pole)

Pokud to chápete tak, že databázový systém musí tyto vlastnosti
zajistit, ať se stane naprosto cokoli, pak tvrdím, že podle vaší
definice není ACID naprosto žádný systém - a ani být nemůže.

> 	Přiznám se, že v této debatě fandím více kolegovi Kaňkovskému...

Fandíte? To je fajn. Já myslel, že se tady jedná o odbornou debatu, ne
o nějakou sportovní soutěž. Ale možná jsem to pochopil špatně... :-)

							  Michal Kubeček



Další informace o konferenci Linux