Manejo de Transacciones Distribuidas

14
PROPIEDADES DE LAS TRANSACCIONES

Transcript of Manejo de Transacciones Distribuidas

Page 1: Manejo de Transacciones Distribuidas

PROPIEDADES DE LAS

TRANSACCIONES

Page 2: Manejo de Transacciones Distribuidas

Atomicidad“O haces todo o no haces nada, a medias nada”

ANTES

Pepe Toño$100 $50

TRANSACCION

$25

DESPUES

Pepe Toño$75 $75

TRANSACCION COMPLETADA CON EXITO

Page 3: Manejo de Transacciones Distribuidas

Durabilidad“Los cambios hechos por una transacción deben durar por toda la eternidad”

10/Mayo/2011

Pepe Toño$75 $75

11/Mayo/2011

Pepe Toño$75 $75

21/Mayo/2011

Pepe Toño$75 $75

Nota: Estamos considerando que no ha habido otra transferencia entre las cuentas

Page 4: Manejo de Transacciones Distribuidas

Serialibidad“Si 2 o mas transacciones se hacen a la vez, el sistema las debe hacer bien”

10/Mayo/2011 07:30am

Pepe Toño

$25

Luis Paco$200 $100

Pepe$75

Las transacciones que ocurren al mismo tiempo se deben ejecutar como si se hubieran ejecutado una después de otra

10/Mayo/2011 07:30am

$50

10/Mayo/2011 07:31am

$75 $75

Toño$75

Luis$150

Paco

$150

Page 5: Manejo de Transacciones Distribuidas

Aislamiento“Las transacciones incompletas no deben informar sus resultados”

ANTES

Pepe Toño$100 $50

TRANSACCION

$25

DESPUES

Pepe Toño$75 $75

$75 $50

$75 $75

Page 6: Manejo de Transacciones Distribuidas

OBJETIVOS DEL

MANEJADOR DE

TRANSACCIONES

Page 7: Manejo de Transacciones Distribuidas
Page 8: Manejo de Transacciones Distribuidas

Utilización del CPU y la memoria principal

SISTEMA CENTRALIZADO SISTEMA DISTRIBUIDO

Pocos Recursos Mayores Recursos

Mensajes de Control

= + +

CPUMemoria Principal

Mensajes de Control

Page 9: Manejo de Transacciones Distribuidas

Tiempo de Respuesta

SISTEMA CENTRALIZADO SISTEMA DISTRIBUIDO

Menor Mayor

Disponibilidad

Yucatán Coahuila Distrito Federal

Contribuyentes Contribuyentes

¿Puedo conocer los contribuyentes de Coahuila si Yucatán no esta disponible?

Page 10: Manejo de Transacciones Distribuidas

TRANSACCIONESDISTRIBUIDAS

Page 11: Manejo de Transacciones Distribuidas

Estructura de una Transacción

Begin_Transaction

Commit Abort

Cuerpo de la transacción

Agente

Page 12: Manejo de Transacciones Distribuidas

Ejemplo de 1 Transacción

ENCONTRAR_TRANSFERENCIALeer (terminal, $cantidad, $cuenta_Origen, cuenta_Destino)Begin_Transaction;SELECT cantidad INTO $cantidad FROM cuentaWHERE numero_Cuenta=$cuenta_Origen;IF $cantidad-cantidad<0 THEN ABORT;ELSE BEGIN UPDATE cuenta SET cantidad=cantidad-$cantidad WHERE cuenta=$cuenta_Origen; UPDATE cuenta SET cantidad=cantidad+$cantidad WHERE cuenta=$cuenta_Destino; COMMIT ENDENDIF

SISTEMA CENTRALIZADO

Page 13: Manejo de Transacciones Distribuidas

Ejemplo de 1 TransacciónAGENTE-RAIZLeer (terminal, $cantidad, $cuenta_Origen, cuenta_Destino)Begin_Transaction;SELECT cantidad INTO $cantidad FROM cuentaWHERE numero_Cuenta=$cuenta_Origen;IF $cantidad-cantidad<0 THEN ABORT;ELSE BEGIN UPDATE cuenta SET cantidad=cantidad-$cantidad WHERE cuenta=$cuenta_Origen; CREATE agente1; SEND TO agente1($cantidad, $cuenta_Destino); COMMIT; ENDENDIF

SISTEMA DISTRIBUIDO

Page 14: Manejo de Transacciones Distribuidas

Ejemplo de 1 Transacción SISTEMA DISTRIBUIDO

AGENTE1:RECEIVE FROM agente_raiz($cuenta_Origen, cuenta_Destino) UPDATE cuenta SET cantidad=cantidad+$cantidad WHERE cuenta=$cuenta_Origen;