Sei sulla pagina 1di 13

Ejemplo en el mbito informtico: supongamos un

banco al que podemos conectarnos por Internet,


con la intencin de retirar dinero de nuestra
cuenta para transferirlo a otra:
Retirar(cantidad, cuenta1)
Ingresar(cantidad, cuenta)
Si la conexin telefnica falla despus de la
primera operacin pero antes de la segunda ?
El problema debe resolverse haciendo que
ambas acciones constituyan una transaccin
atmica: o se hacen ambas o no se hace ninguna
Conjuntos de operaciones englobadas dentro de
un bloque cuya ejecucin es completa.
Cumplen las propiedades ACID:
Atomicity (Atomicidad): La transaccin se realiza
completa o no se realiza nada.
Consistency (Consistencia): Los estados anterior y
posterior a la transaccin son estados estables
(consistentes).
Isolation (Aislamiento): Los estados intermedios de la
transaccin son slo visibles dentro de la propia
transaccin.
Durability (Durabilidad): Las modificaciones realizadas
por una transaccin completada se mantienen.
La gestin de transacciones admite tres
operaciones:
beginTransaction(): Comienza un bloque de
una transaccin.
endTransaction(): Concluye el bloque y
todas las operaciones se completan.
abortTransaction(): En cualquier punto se
aborta la transaccin y se regresa al estado
anterior al comienzo de transaccin.
Un algoritmo para control de concurrencia en
SS.DD se basa en el uso de la cerradura
Ej. al acceder a un archivo, se activa una cerradura
de acceso
La cerradura puede ser de lectura/escritura
La cerradura puede ser a todo el fichero o a
ciertos registros (granularidad de la cerradura)
La cerradura ms usada es la de dos fases:
primero se va intentando adquirir todas las
cerraduras necesarias, y solo entonces se
accede
Si no se pudiera acceder a una de las
cerraduras, se liberan las ya obtenidas
La problemtica de las transacciones concurrentes
se debe a:
Operaciones de lectura y escritura simultnea.
Varias operaciones de escritura simultnea.

La alternativa es la reordenacin de las


operaciones a lo que se denominan operaciones
secuenciales equivalentes.
Los mtodos de resolucin aplicados son:
Cerrojos (Locks): Aplicados sobre los objetos afectados.
Control de concurrencia optimista: Las acciones se
realizan sin verificacin hasta que se llega a un commit.
Ordenacin en base a marcas de tiempo.
Cada objeto compartido por dos procesos
concurrentes tiene asociado un cerrojo.
El cerrojo se cierra al comenzar el uso del objeto.
El cerrojo se libera al concluir la operacin.

El uso de cerrojos puede ser definido a diferentes


niveles del objeto a controlar (niveles de
granularidad).
Modelos de cerrojo:
Lectura
Escritura
Los cerrojos son susceptibles de sufrir
interbloqueos.
Un interbloqueo se produce cuando varios
procesos compiten por cerrojos de forma cclica:
Deteccin de interbloqueos: Grafos de espera.
A
T U
B

Prevencin de interbloques: Cierre de todos los


cerrojos de una transaccin antes de comenzar (Poco
eficiente).
Resolucin de interbloqueos: Lo ms habitual es por
medio de Timeouts y abortando la transaccin
propietaria del cerrojo.
Muy pocas operaciones concurrentes tiene
conflictos entre s.
Divisin de una operacin en:
Fase de trabajo: Los objetos usados por la
transaccin pueden ser copiados en valores
tentativos. Una lectura tome este valor si existe
sino el ltimo valor validado. Las escrituras se
realizan siempre sobre los valores tentativos.
Fase de validacin: Al cerrar la transaccin se
verifica colisiones con otras transacciones.
Fase de actualizacin: Los valores tentativos son
copiados como valores validados.
Trabajo Validacin Actualizacin
T1
T2
T3
T4

Validacin:
Validacin hacia atrs: Se anula una transaccin si otra
transaccin activa escribe un valor que sta lee.
Validacin hacia delante: Todos los procesos de
escritura realizados anulan a las transacciones que los
lean.
Problemtica:
Si la fase de validacin falla la transaccin se aborta y
se reinicia. Puede causar inanicin.
Transacciones que afectan de forma atmica a objetos
residentes en varios servidores.
Uso principal: transacciones distribuidas
Cuando termina la transaccin (end-transaction):
Si todos los procesadores implicados estn de acuerdo, se
compromete
Si algn procesador quiere abortarla o est cado, se aborta

Protocolo clsico two-phase-commit (2PC)


Proceso que ejecuta transaccin acta de coordinador
Requiere almacenamiento estable: (nunca pierde la infor.)
Uso de dos discos: se escribe primero en uno y luego en otro

Potrebbero piacerti anche