Gestor transaccional
En computació, un gestor transaccional és un component que processa informació descomponent-la de forma unitària en operacions indivisibles, cridades transaccions. Cada transacció deu finalisar de forma correcta o incorrecta com una unitat completa. No pot acabar en un estat intermig.
Descripció
Els gestors transaccionals es dissenyen per a mantindre bases de senyes en un estat conegut i consistent, assegurant que totes les operacions que són interdependents realisades sobre la base de senyes s'han completat totes correctament o s'han cancelat totes.
Per eixemple, prenga's un eixemple típic d'una transacció bancària que requerix moure 500€ del conte d'un client a una atra. Esta transacció és una operació única segons la visió del banc, pero requerix a lo manco dos operacions des de la visió de la computadora: restar 500€ del conte del client orige i sumar-li 500€ al client destine. Si l'operació de resta finalisa correctament pero l'operació de suma no (o viceversa), el balanç del banc al final del dia no serà correcte. Per lo tant, deu haver una forma d'assegurar que abdós operacions finalisen correctament o no s'eixecuten, i aixina evitar qualsevol tipo de inconsistencia en la base de senyes del banc. Un gestor transaccional proporciona esta característica.
Un gestor transaccional permet enllaçar vàries operacions individuals automàticament com una sola transacció indivisible. El gestor garantisa que totes les operacions finalisen sense errors o cap d'elles s'eixecuta. Si algunes operacions varen finalisar correctament pero unes atres no, el gestor inicia el procés de rollback de totes les operacions implicades (inclús d'aquelles que varen finalisar correctament), eliminant tot rastre de la transacció i tornant la base de senyes a un estat consistent, com lo estava abans d'escomençar a processar la transacció. Si totes les operacions de la transacció varen finalisar correctament, la transacció realisa commit als canvis realisats en la base de senyes. Una volta s'ha fet commit, les senyes d'eixa transacció queden consolidats i la transacció no pot fer rollback dels canvis.
Totes les transaccions es processen en orde cronològic. Si la transacció n+1 modifica la mateixa àrea que la transacció n, la transacció n+1 no pot escomençar fins que la transacció n haja realisat commit dels seus canvis. Cap transacció pot realisar commit de les seues modificacions fins que totes les transaccions anteriors que modifiquen la mateixa àrea hagen realisat commit (o rollback) dels seus canvis. No pot haver «bots» de seqüència en les transaccions anteriors.
Metodologia
Els principis bàsics de qualsevol sistema transaccional són els mateixos. No obstant, la terminologia pot variar d'un sistema a un atre; els térmens utilisats ací no tenen per qué ser universals.
Rollback
Els gestors transaccionals asseguren l'integritat de les bases de senyes registrant tots els estats intermijos d'una base de senyes mentres es modifica. En cas que la transacció falle, s'usen eixos registres per a tornar la base de senyes a un estat consistent. Per eixemple, es copia informació de la base de senyes abans de que siga modificada per una transacció, de tal manera que si partix de la transacció acaba incorrectament, s'usen eixes còpies (cridades before image) per a restablir l'integritat de les senyes (rollback).
Rollforward
També és possible mantindre una còpia (cridada after image) de totes aquelles modificacions realisades sobre una base de senyes. No és necessari per a fer rollback de les transaccions que varen finalisar incorrectament, pero sí és útil per a actualisar la base de senyes en l'escenari d'una recuperació.
Si la base de senyes falla estrepitosament, la restauració es deu iniciar des de la còpia de seguritat més recent, encara que no reflectirà aquells canvis posteriors a la còpia. No obstant, una volta s'ha restablit la còpia de seguritat s'aplica la còpia after image que contindrà totes les modificacions entre la còpia de seguritat i el fallo de la base de senyes. Desgraciadament, esta còpia també conté totes aquelles modificacions que estaven en vol en el moment del fallo. Per això, és necessari aplicar la còpia before image que farà rollback de les transaccions en un estat intermig, tornant la base de senyes a un estat segur i consistent.
Bloquejos mutus
En alguns casos, dos transaccions poden, en el transcurs de la seua eixecució, competir per dos recursos al mateix temps, de tal manera que impedix seguir en la seua eixecució. Un bloqueig mutu (o interbloqueo, deadlock en anglés) ocorre, per eixemple, quan la transacció A intenta accedir a l'àrea X de la base de senyes mentres la transacció B intenta accedir a l'àrea I de la base de senyes. Si, en algun punt intermig, la transacció A intenta accedir a l'àrea I mentres la transacció B intenta accedir a l'àrea X es genera un bloqueig mutu que impedix a abdós transaccions progressar. Els sistemes transaccionals estan dissenyats per a detectar este tipo de bloquejos quan ocorren i actuar en concordancia. O ben abdós transaccions són cancelades i el sistema fa rollback de tots els canvis per a després tornar a eixecutar-les automàticament en diferent orde de tal forma que no es torne a formar un atre bloqueig mutu, o be cancelar i fer rollback d'una d'elles i tornar-la a llançar despuix d'una chicoteta espera.
nl:Transactie (dataopslag)#Uitleg
Referències
- Este artícul conté una traducció derivada de «Gestor transaccional» de Wikipedia en castellà publicada baix la Llicència de documentació lliure de GNU i la Llicència Creative Commons Reconeiximent-CompartirIgual 4.0 Internacional.