Architektúra softwaru pre transakčné spracovanie
Úspešné vykonanie transakcie: A –je větší než PC – je větší než C
Neúspešné: A – je větší než F – je větší než AB
A – je větší než PC – je větší než F – je větší než AB
Prechod zo stavu F do stavu AB je vykonaní operácie ROLLBACK.
Prechod AB – je větší než F je v prípade keď, došlo k chybe v čase medzi logickým a fyzickým vykonaním operácie (napr. výpadok systému v čase, keď ešte neboli dáta odoslané z vyrovnávacej pamäte na disk).
V prípade stavu AB máme dve možnosti, reštartovať transakciu, alebo ju ponecháme dočasne zrušenú (napr. pokiaľ nie je opravená logická chyba v programe).
Aby bolo možné príkazom ROLLBACK vrátiť BD do stavu pred začatím vykonávania transakcie, musí SRBD, ktorý podporuje transakčné spracovanie, udržiavať tzv. žurnál (ang. log file), čo je vlastne BD obsahujúca históriu všetkých zmien užívateľskej BD v istej časovej perióde.
Dvojfázový potvrdzovací protokol
Priebeh transakcie tak, ako bol popísaný vyššie predpokladá zdieľanie jedného procesoru viacerými procesmi, čo pre veľa aplikácii nie je vhodným riešením, dôvodom môže byť vysoká cena spracovania (procesor na spracovávanie veľkého množstva nestačí), alebo prirodzená potreba umiestnenia dát na rôznych miestach.
Riešenie pre prvý prípad je paralelná architektúra systému, spojenie viacerých procesorov do kompaktného celku, v druhom prípade architektúra distribuovaného systému.
V týchto prípadoch je problém spracovávania transakcie podobný.
Transakcia vyvolaná v jednom uzle je rozdelená na podtransakcie, ktoré sa vykonávajú v ďalších uzloch. Podtransakcie sú v jednotlivých uzloch koordinované, musí byť dodržané, že všetky sú buď potvrdené, alebo zrušené.
Uvažujme transakciu T, ktorá má distibuované podtransakcie T1 v uzle U1 a T2 v uzle U2. Pre úspešné ukončenie transakcie T je nutné úspešné ukončenie oboch podtransakcií T1 aj T2. Nech T1 je úspešne skončí a je v stave C (potvrdená) a vypadol uzol U2, čo vedie k zrušeniu celej transakcie T (vrátane T1,T2). To už nie je možné – T1 už nemožno vrátiť späť, dokonca nasledujúce transakcie na uzle U1 mohli pracovať so zmenenými dátami.