La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Transacciones y Concurrencia

Presentaciones similares


Presentación del tema: "Transacciones y Concurrencia"— Transcripción de la presentación:

1 Transacciones y Concurrencia
Universidad Argentina J. F. Kennedy - Año 2008 Bases de Datos II Transacciones y Concurrencia Maletin Yahoo => briefcase.yahoo.com Usuario => bd2_jfk Psw => kennedy

2 Transacción Definición de Transacción Propiedades de las Transacciones
Administración de Fallas en Transacciones Problemas de Concurrencia Two Phase Commit

3 Transacción Ejemplo => Un deposito bancario implica:
INSERT INTO MOV (CTA, FEC, IMP) VALUES ( ,” ”,100); UPDATE CTACTE SET SALDO = SALDO + 100;

4 Transacción Más de una operación puede ser una unidad lógica de trabajo Transacción => Puede ser una o varias operaciones La secuencia de operaciones se deben ejecutar como una sola operación atómica (todo o nada).

5 Transacción PUNTO de CONSITENCIA: Pasa de un estado consistente de datos a otro también consistente. UNIDAD de RECUPERO: En caso de falla del sistema se recupera la transacción completa. PUNTO de SINCRONIZMO: Cada vez que termino una transacción estoy generando un punto de sincronizmo de datos

6 Administrador de Transacciones
Proporciona atomicidad a través de las instrucciones: COMMIT (comprometer): indica la finalización de una transacción satisfactoria. ROLLBACK (revertir): indica la finalización de una transacción no satisfactoria.

7 ROLLBACK Puede ser ejecutado en dos formas:
Explícitamente: el usuario o el programa instruyen al RDBMS su ejecución. Implícitamente: ante cualquier falla (comunicación, hardware, energía, etc.) el RDBMS hará un rollback de las transacciones en curso.

8 Ciclo de vida de una Transacción
Punto de confirmación (estado consistente) COMMIT Vuelve al último punto de confirmación (estado consistente) BEGIN TRANSACTION INSERT… UPDATE… DELETE… : (estado consistente) (estado inconsistente) Punto de confirmación COMMIT ROLLBACK

9 Transacción Definición de Transacción Propiedades de las Transacciones
Administración de Fallas en Transacciones Problemas de Concurrencia Two Phase Commit

10 Transacción Una transacción es una secuencia de operaciones realizadas como una sola unidad lógica de trabajo. Una unidad lógica de trabajo debe exhibir cuatro propiedades, conocidas como propiedades de Atomicidad, Consistencia (coherencia), Aislamiento y Durabilidad (ACID), para ser calificada como transacción.

11 Propiedades “ACID” Atomicidad: es indivisible, todo o nada.
Consistencia: transforma un estado consistente de la base de datos en otro igual, sin necesidad de conservar la consistencia en todos los puntos intermedios Aislamiento: aunque en general hay muchas transacciones ejecutándose en forma concurrente, las actualizaciones de una transacción dada están ocultas ante las demás, hasta que esa transacción sea confirmada Durabilidad: una vez que es confirmada, sus actualizaciones sobreviven en la base de datos aun cuando haya una caída posterior del sistema.

12 Consecuencias de la falta
de Atomicidad

13 El usuario acusa al departamento de sistemas de tocar sus datos.
Consecuencias de la falta de atomicidad Microcortes El usuario acusa al departamento de sistemas de tocar sus datos. Al hacerse la modificación en dos transacciones se vuelve frecuente la pérdida de registros en forma “inexplicable” en la base de datos. Para modificar un registro, la aplicación lo borra y lo inserta: BEGIN TRANSACTION; DELETE FROM ORDENES WHERE ORDEN=1234; COMMIT; << Pérdida de enlace >>> INSERT INTO ORDENES(…) VALUES(…); Oracle No llega a ejecutarse en la base de datos

14 Consecuencias de la falta de atomicidad
Microcortes Se corrige el sistema haciendo que la modificación sea una operación atómica, una única transacción. Modificación de un registro: BEGIN TRANSACTION; DELETE FROM ORDENES WHERE ORDEN=1234; INSERT INTO ORDENES(…) VALUES(…); COMMIT; Oracle

15 Transacción Propiedades de las Transacciones Two Phase Commit
Definición de Transacción Propiedades de las Transacciones Administración de Fallas en Transacciones Problemas de Concurrencia Two Phase Commit

16 Fallas: Caida del Sistema
¿Cómo se garantiza la integridad de los datos cuando se emite un ROLLBACK? ¿Como se garantiza la integridad de los datos ante una falla del sistema?

17 Escritura anticipada de log de transacciones
Ante una falla del sistema después de haber recibido un COMMIT, y antes de escribir físicamente las actualizaciones en la base de datos, al reiniciarse, es capaz de descubrir los valores que hay que escribir, examinando las entradas relevantes en el log de transacciones. Archivos de datos log de transacciones activo Nuevas transacciones Escritura física de las transacciones satisfactorias Una vez lleno el log activo se copia a un directorio de almacenamiento Ante una falla del medio, a partir del último backup de los archivos de datos, se pueden reescribir físicamente todas las transacciones producidas desde el punto de backup de los mismos y hasta el momento en que se produjo la pérdida. Esta operación se llama ROLL-FORWARD. Transacción: Son la unidad de recuperación Son la unidad de concurrencia Pueden ser vistas como unidad de integridad, puesto que transforman un estado consistente hacia otro estado consistente. Directorio de logs de transacciones archivados

18 Fallas: Caida del Sistema

19 Transacción Definición de Transacción Propiedades de las Transacciones
Administración de Fallas en Transacciones Problemas de Concurrencia Two Phase Commit

20 Problemas de Concurrencia
Modificación Perdida Modificación sin COMMIT Análisis Inconsistente

21 Modificación Perdida

22 Modificación sin COMMIT

23 Análisis Inconsistente

24 Se necesita una SOLUCION !!!!
Concurrencia Se necesita una SOLUCION !!!!

25 Concurrencia - Bloqueo
X S - No s Matriz de compatibilidad de tipos de Locks

26 Modificación Perdida (cuadro actualizado)

27 Modificación sin COMMIT (cuadro actualizado)

28 Modificación sin COMMIT

29 Bloqueo: Análisis Inconsistente

30 Abrazo Mortal - Dead Lock

31 Transacción Definición de Transacción Propiedades de las Transacciones
Administración de Fallas en Transacciones Problemas de Concurrencia Two Phase Commit

32 Bases de Datos Distribuidas
¿Cómo se administra un COMMIT cuando actualizamos datos distribuidos en más de un DBMS? ¿Y si cuando lanzado el COMMIT se corta la comunicación con alguno de los DBMS?

33 Bases de Datos Distribuidas
Participante COMMIT - ROLLBACK ¿Quién verifica que todos los “Participantes” responda con un simple “OK”? Participante Programa COMMIT - ROLLBACK Participante COMMIT - ROLLBACK

34 BD Distribuidas – Confirmación de dos Fases
El COMMIT o ROLLBACK "global" es manejado por un componente del sistema llamado coordinador que: Garantizar que los DBMS confirmen o deshagan al unísono las actualizaciones de las que son responsables Proporcionar esa garantía aunque el sistema falle a mitad del proceso

35 Confirmación de dos Fases Fase 1
Da instrucciones a todos los administradores de recursos a fin de que estén listos para manejar la transacción "de una u otra forma". En la práctica esto significa que cada participante en el proceso debe forzar todos los registros de log de los recursos locales usados por la transacción, hacia su propio log físico (es decir, hacia el almacenamiento no volátil), esto con el fin de que, sin importar qué pase después, el administrador de recursos tenga ahora un registro permanente del trabajo que hizo a nombre de la transacción y por lo tanto sea capaz de confirmar o deshacer las actualizaciones según sea necesario. Participante log Fin Transacción Coordinador Participante Fin Transacción log Participante Fin Transacción log Programa

36 Confirmación de dos Fases Fase 1
Participante OK / No OK Suponiendo que la escritura forzada es satisfactoria, el administrador de recursos responde ahora un "OK" al coordinador, y en caso contrario responde "No OK". Participante Coordinador OK / No OK OK / No OK Participante Programa

37 Confirmación de dos Fases Fase 2
Participante Cuando el coordinador ha recibido las respuestas de todos los participantes, fuerza una entrada en su propio log físico registrando su decisión con respecto a la transacción. Si todas las respuestas fueron "OK", esa decisión es "confirmar", y si alguna respuesta fue "No OK", la decisión es "deshacer". Coordinador Participante Participante log Programa

38 Confirmación de dos Fases Fase 2
Participante COMMIT - ROLLBACK El coordinador informa después su decisión a cada participante y luego cada participante debe confirmar o deshacer la transacción localmente según se le indica. Participante Coordinador COMMIT - ROLLBACK Participante COMMIT - ROLLBACK Programa


Descargar ppt "Transacciones y Concurrencia"

Presentaciones similares


Anuncios Google