manejo de transacciones distribuidas
TRANSCRIPT
![Page 1: Manejo de Transacciones Distribuidas](https://reader034.vdocuments.pub/reader034/viewer/2022050815/5478145f5906b55f318b4731/html5/thumbnails/1.jpg)
PROPIEDADES DE LAS
TRANSACCIONES
![Page 2: Manejo de Transacciones Distribuidas](https://reader034.vdocuments.pub/reader034/viewer/2022050815/5478145f5906b55f318b4731/html5/thumbnails/2.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022050815/5478145f5906b55f318b4731/html5/thumbnails/3.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022050815/5478145f5906b55f318b4731/html5/thumbnails/4.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022050815/5478145f5906b55f318b4731/html5/thumbnails/5.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022050815/5478145f5906b55f318b4731/html5/thumbnails/6.jpg)
OBJETIVOS DEL
MANEJADOR DE
TRANSACCIONES
![Page 7: Manejo de Transacciones Distribuidas](https://reader034.vdocuments.pub/reader034/viewer/2022050815/5478145f5906b55f318b4731/html5/thumbnails/7.jpg)
![Page 8: Manejo de Transacciones Distribuidas](https://reader034.vdocuments.pub/reader034/viewer/2022050815/5478145f5906b55f318b4731/html5/thumbnails/8.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022050815/5478145f5906b55f318b4731/html5/thumbnails/9.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022050815/5478145f5906b55f318b4731/html5/thumbnails/10.jpg)
TRANSACCIONESDISTRIBUIDAS
![Page 11: Manejo de Transacciones Distribuidas](https://reader034.vdocuments.pub/reader034/viewer/2022050815/5478145f5906b55f318b4731/html5/thumbnails/11.jpg)
Estructura de una Transacción
Begin_Transaction
Commit Abort
Cuerpo de la transacción
Agente
![Page 12: Manejo de Transacciones Distribuidas](https://reader034.vdocuments.pub/reader034/viewer/2022050815/5478145f5906b55f318b4731/html5/thumbnails/12.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022050815/5478145f5906b55f318b4731/html5/thumbnails/13.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022050815/5478145f5906b55f318b4731/html5/thumbnails/14.jpg)
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;