Download - Manejo de Transacciones Lic. Bárbara da Silva Sistemas de Bases de Datos Distribuidas - UCV.

Transcript
Page 1: Manejo de Transacciones Lic. Bárbara da Silva Sistemas de Bases de Datos Distribuidas - UCV.

Manejo de Transacciones

Lic. Bárbara da Silva

Sistemas de Bases de Datos Distribuidas - UCV

Page 2: Manejo de Transacciones Lic. Bárbara da Silva Sistemas de Bases de Datos Distribuidas - UCV.

Esquema de la Clase

• Definición de Transacción• Modelo de Transacción• Propiedades de una transacción• Implementación de transacciones• Transacción Distribuida• Clasificación de las Transacciones Distribuidas• Modelos de Transacciones Distribuidas

– Tradicional– Transacciones Anidadas

• Modelo del Manejador de Transacciones

Page 3: Manejo de Transacciones Lic. Bárbara da Silva Sistemas de Bases de Datos Distribuidas - UCV.

Definición de Transacción

Una Transacción es una unidad de trabajo consistente y confiable, formada por una serie de operaciones de lectura y/o escritura sobre la Base de Datos (BD) que transforman el estado de la misma (Date, 1998; Moss, 1985; Ozsü y Valduriez, 1999).

BD en un Estado Consistente

BD en un Estado Consistente

Transacción

Page 4: Manejo de Transacciones Lic. Bárbara da Silva Sistemas de Bases de Datos Distribuidas - UCV.

Definición de Transacción

Se debe considerar que:

1. La transacción se puede estar ejecutando junto con otras transacciones -> Control de Concurrencia.

2. Durante su ejecución pueden ocurrir fallas. -> Recuperación y Confiabilidad.

Page 5: Manejo de Transacciones Lic. Bárbara da Silva Sistemas de Bases de Datos Distribuidas - UCV.

Modelo de Transacción

Primitiva Descripción

BEGIN_TRANSACTION Inicio de la transacción

COMMIT Permite que todos los cambios realizados por la transacción sobre la BD permanezcan en la misma y por tanto sean visibles a las demás transacciones

ROLLBACK ó ABORT Deshace todos los cambios realizados sobre la BD, dejándola en su estado inicial

READ Lectura de la Data

WRITE Escritura de la Data

Page 6: Manejo de Transacciones Lic. Bárbara da Silva Sistemas de Bases de Datos Distribuidas - UCV.

Ejemplo de Transacción

BEGIN_TRANSACTION ReservationREAD ($numVuelo, $fecha, $nombreCliente)EXEC UPDATE Vuelo

SET asientoReservado = asientoReservado + 1WHERE numeroVuelo = $numVueloand fechaVuelo = $fecha;

EXEC INSERT INTO FC (numeroVuelo, fechaVuelo, cNombre,

especial)VALUES ($numVuelo, $fecha, $nombreCliente, null)output (“Reservación Completada”);COMMIT;

END_TRANSACTION

Page 7: Manejo de Transacciones Lic. Bárbara da Silva Sistemas de Bases de Datos Distribuidas - UCV.

Propiedades de una Transacción

También conocidas como propiedades ACID, debido a las iniciales en inglés de las cuatro propiedades presentadas a continuación:

Atomicidad (Atomicity): Se ejecutan todas las operaciones que forman parte de la transacción o ninguna de las operaciones son ejecutadas (todo o nada).

Durabilidad (Durability). Todos los cambios realizados por una transacción validada deben permanecer en la Base de Datos, a pesar de las fallas

Page 8: Manejo de Transacciones Lic. Bárbara da Silva Sistemas de Bases de Datos Distribuidas - UCV.

Propiedades de una Transacción

Consistencia (Consistency): Una transacción toma una base de datos consistente, hace operaciones sobre ella y debe dejarla en un estado consistente. Esta propiedad asegura que la transacción transforma el estado de la BD de forma correcta, es decir, deja la Base de Datos en un estado consistente.

Aislamiento (Isolation). Una transacción que se está ejecutando no revela sus resultados a otra transacción concurrente antes de validar, es decir, la ejecución de una transacción no debe interferir con la ejecución de otras transacciones que se estén ejecutando concurrentemente.

El aislamiento asegura que cada transacción vea un estado consistente de la BD

Page 9: Manejo de Transacciones Lic. Bárbara da Silva Sistemas de Bases de Datos Distribuidas - UCV.

Implementación de transacciones

Espacio de Trabajo Privado

• Se copian los datos en un espacio propio de cada transacción

• La transacción opera sobre su copia privada

• Al finalizar exitosamente la transacción se actualizan en la base de datos

Page 10: Manejo de Transacciones Lic. Bárbara da Silva Sistemas de Bases de Datos Distribuidas - UCV.

Implementación de transacciones

Registro Previo de actualizaciones (Writeahead Log)

• Las actualizaciones son realizadas directamente en la base de datos.

• Antes de realizar una actualización registra en el log el valor previo del dato y el valor que tomará el dato.

• Se lleva un registro de los cambios realizados.

Page 11: Manejo de Transacciones Lic. Bárbara da Silva Sistemas de Bases de Datos Distribuidas - UCV.

Transacción Distribuida

Una Transacción distribuida es una transacción que se ejecuta sobre varios nodos (computadores).

La transacción es dividida en partes, donde cada parte es asignada, siguiendo ciertas políticas, a un determinado nodo para ser ejecutada, pudiendo la transacción acceder a datos ubicados en diferentes nodos.

Page 12: Manejo de Transacciones Lic. Bárbara da Silva Sistemas de Bases de Datos Distribuidas - UCV.

Clasificación de Transacciones Distribuidas

1. Duración de las Transacciones

Transacciones en Línea o de Corta Vida: Posee un tiempo corto de ejecución y acceden a una pequeña porción de la BD. Por ejemplo una transacción bancaria.

Transacciones Batch o de Larga Vida: Transacciones de larga ejecución (minutos, horas o días) y que acceden a una amplia porción de la BD. Como por ejemplo: aplicaciones estadísticas, procesamiento de imágenes, entre otras.

Page 13: Manejo de Transacciones Lic. Bárbara da Silva Sistemas de Bases de Datos Distribuidas - UCV.

Clasificación de Transacciones Distribuidas

2. Organización de las Operaciones de Lectura y Escritura

General: Las operaciones no tienen un orden específico.

Transacciones en dos Pasos: Todas las lecturas se hacen antes de cualquier escritura.

Restringida o lectura antes de escritura: Un dato es leído antes de que pueda ser modificado.

Page 14: Manejo de Transacciones Lic. Bárbara da Silva Sistemas de Bases de Datos Distribuidas - UCV.

Clasificación de Transacciones Distribuidas

2. Organización de las Operaciones de Lectura y Escritura

Restringida a dos Pasos: Antes de ser modificado un dato debe ser leído, pero todas las lecturas deben estar antes de todas las escrituras.

Modelo de Acción: Similar al modelo Restringido pero con la característica adicional de que cada par de operaciones <lectura, escritura> debe ser ejecutado atómicamente.

Page 15: Manejo de Transacciones Lic. Bárbara da Silva Sistemas de Bases de Datos Distribuidas - UCV.

Clasificación de Transacciones Distribuidas

2. Organización de las Operaciones de Lectura y Escritura

Page 16: Manejo de Transacciones Lic. Bárbara da Silva Sistemas de Bases de Datos Distribuidas - UCV.

Clasificación de Transacciones Distribuidas

3. Estructura

Transacciones Planas (Flat Transaction): La Transacción es un solo bloque de programa, que tiene un único punto de comienzo (begin) y un único punto de terminación (commit o rollback).

Transacciones Anidadas (Nested Transaction): Una Transacción puede estar compuesta a su vez de otras transacciones, es decir que dentro de sus puntos de inicio y fin pueden colocarse una o más transacciones, cuyas transacciones a su vez también pueden ser anidadas.

Page 17: Manejo de Transacciones Lic. Bárbara da Silva Sistemas de Bases de Datos Distribuidas - UCV.

Modelo Tradicional de Transacciones Distribuidas

El modelo tradicional propone una transacción con una estructura de una Transacción Plana que cumple a cabalidad las propiedades ACID.

Ti = {Op1, Op2, Op3, … , Opn, F}

Donde: Opj, j=1…n: operacionesF: final o terminación de la transacción

Page 18: Manejo de Transacciones Lic. Bárbara da Silva Sistemas de Bases de Datos Distribuidas - UCV.

Modelo Tradicional de Transacciones Distribuidas

El modelo resulta limitado para aplicaciones que poseen operaciones más complejas y tienen un tiempo de ejecución mucho más largo porque:

• Es más probable de ser interrumpida por fallas.

• Acceden a mucho más datos que una corta, y siguiendo este modelo la transacción mantiene el bloqueo sobre esos datos hasta su terminación

• Mayor probabilidad de interbloqueo.

• No permite la cooperación entre transacciones.

Page 19: Manejo de Transacciones Lic. Bárbara da Silva Sistemas de Bases de Datos Distribuidas - UCV.

Modelo de Transacciones Anidadas

Una Transacción Anidada es una transacción que se conforma por transacciones, que pueden a su vez ser anidadas.

Las transacciones que se encuentran dentro de otras transacciones son llamadas subtransacciones.

Ti = {T1, T2, … , Tn, F}

Donde:Ti está formada por transacciones (Tj, j=1…n) F: final o terminación de la transacción

Page 20: Manejo de Transacciones Lic. Bárbara da Silva Sistemas de Bases de Datos Distribuidas - UCV.

Modelo de Transacciones Anidadas

La raíz del árbol es denominada Transacción Raíz ó Top-Level.

Una transacción que tiene subtransacciones es llamada Transacción Madre y sus subtransacciones son sus Transacciones Hijas. Las transacciones que no tiene subtransacciones son llamadas Transacciones Hojas.

Page 21: Manejo de Transacciones Lic. Bárbara da Silva Sistemas de Bases de Datos Distribuidas - UCV.

Modelo de Transacciones Anidadas

Las transacciones encontradas en el camino desde una subtransacción determinada hasta la raíz del árbol son llamadas Ancestros a dicha subtransacción.

Y aquellas que se encuentran desde la subtransacción hasta las subtransacciones hojas del árbol del cual la subtransacción es raíz son llamadas Descendientes.

Se tienen subtransacciones Vitales y No Vitales. Las Vitales son aquellas subtransacciones que tienen que obligatoriamente validar para que la transacción madre pueda validar y las No Vitales son aquellas que aunque no validen su transacción madre puede validar.

Page 22: Manejo de Transacciones Lic. Bárbara da Silva Sistemas de Bases de Datos Distribuidas - UCV.

Modelo de Transacciones Anidadas

Ventajas

• Mayor nivel de Concurrencia

• Paralelismo

• Menor Costo en Recuperación

• Modularidad

Page 23: Manejo de Transacciones Lic. Bárbara da Silva Sistemas de Bases de Datos Distribuidas - UCV.

Modelo de Transacciones Anidadas

Limitaciones

• Es más compleja la administración de transacciones.

• Puesto que las transacciones se pueden anidar con un nivel de profundidad arbitrario, es necesaria una considerable administración para que todo sea correcto.

• No permite la cooperación entre transacciones.

Page 24: Manejo de Transacciones Lic. Bárbara da Silva Sistemas de Bases de Datos Distribuidas - UCV.

Modelo de Transacciones Anidadas

Reglas de Comportamiento

• Una transacción hija comienza después que su madre y termina antes de la misma.

• Una transacción madre no puede terminar hasta que todas sus hijas hayan sido resueltas, es decir ya hayan terminado. Así se asegura el orden requerido de validación.

• La validación de la subtransacción es condicional a la validación de su madre, es decir que las modificaciones de una subtransacción validada tendrán efecto siempre y cuando su transacción madre valide.

Page 25: Manejo de Transacciones Lic. Bárbara da Silva Sistemas de Bases de Datos Distribuidas - UCV.

Modelo de Transacciones Anidadas

Reglas de Comportamiento

• Si una subtransacción falla, no necesariamente su transacción madre aborta. Esto depende si la subtransacción que falló es vital para que la transacción madre valide o no.

• El aborto de una transacción implica que sus inferiores aborten, pero no necesariamente el de sus superiores.

• Cuando una transacción valida, sus actualizaciones son heredadas por su madre.

• Los cambios de una subtransacción se hacen permanentes solo cuando la transacción raíz valida, es decir que las actualizaciones que haya heredado la transacción raíz son llevadas a la BD.

Page 26: Manejo de Transacciones Lic. Bárbara da Silva Sistemas de Bases de Datos Distribuidas - UCV.

Modelo de Transacciones Anidadas

Propiedades ACID

En las transacciones anidadas las propiedades de atomicidad y de durabilidad son reformuladas, porque aún cuando parte de su árbol haya abandonado la transacción puede validar.

Se cumple la propiedad de aislamiento por cada una de las subtransacciones, ya que los cambios realizados por las descendientes de una transacción solo serán visibles por las transacciones en el árbol del cual dicha transacción es raíz.

En cuanto a la propiedad de consistencia, al igual que la durabilidad ésta es conservada solamente por la transacción raíz, ya que la transacción raíz es la que garantiza que la base de datos se encuentre en un estado consistente.

Page 27: Manejo de Transacciones Lic. Bárbara da Silva Sistemas de Bases de Datos Distribuidas - UCV.

Modelo del Manejador de Transacciones

Manejador de Transacciones

Scheduler

Administrador de la Data

Transacciones

BEGIN_TRANSACTION

END_TRANSACTION

LOCK/RELEASE

Timestamp

Execute

Read/write

Page 28: Manejo de Transacciones Lic. Bárbara da Silva Sistemas de Bases de Datos Distribuidas - UCV.

Modelo del Manejador de Transacciones

Transaction Manager: Encargado de supervisar la ejecución de las transacciones y de coordinar las peticiones de la base de datos que realiza la transacción.

Scheduler: Maximiza la concurrencia sin permitir la ejecución concurrente de transacciones que interfieran en otra, y así comprometer la integridad o la consistencia de la base de datos.

Page 29: Manejo de Transacciones Lic. Bárbara da Silva Sistemas de Bases de Datos Distribuidas - UCV.

Tarea

Investigar la implementación de las transacciones distribuidas en los SMBD Comerciales.