Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Planificacin de Transacciones
Planificacin
Sean A = 200 bs y B = 400
Planificaciones
Conservar el orden de la transaccin.
P1 y P2 son secunciales.
N! Plantaciones vlidas para N transacciones.
No consistencia
Dejar concurrencia al SO.
Se puede asegurar la consistencia.
Secuencialidad
El sistema debe controlar la ejecucin concurrente de las transacciones para asegurar
que el estado de la base sigue siendo consistente.
Planificaciones que aseguran consistencia
Se debe tener en cuenta:
No se verifican todas las instrucciones, slo las operaciones de lectura y de escritura de la
base de datos.
Cuando se poseen operaciones secuenciales de lectura y de escritura en el mismo punto de
la base de datos entonces la planificacin puede generar inconsistencias.
La mejor forma de asegurar planificaciones correctas es asegurando las equivalencias de
planificacin y esto se logra con dososibles tcnicas: Secuencialidad en cuanto
a conflictos y Secuencialidad en cuanto a vistas.
Planificaciones que aseguran consistencia
Planificacin 3: Ejecucin concurrente equivalente a la planificacin 1.
Se concluye que:
Slo en el caso que Ii e Ij, son instrucciones leer no tiene importancia el orden de ejecucin
de las mismas.
Existe conflicto entre Ii e Ij si existen operaciones de diferentes transacciones sobre el mismo
elemento de datos, y al menos una de estas instrucciones es una operacin
Control de concurrencia.
Es importante recordar que muchos de los datos de la base no se encuentran nada ms en disco, sino
tambin en los buffers de memoria, de ah que el scheduler interacta con ellos y en su defecto
solicita la lectura de los datos del disco.
SERIABILIDAD
Una forma de evitar los problemas de interferencia es no permitir que las transacciones se
intercalen. Una ejecucin en la cual ninguna de dos transaccin se intercala se conoce como serial.
Para ser ms precisos, una ejecucin se dice que es serial si, para todo par de transacciones, todas
las operaciones de una transaccin se ejecutan antes de cualquier operacin de la otra transaccin.
Desde el punto de vista del usuario, en una ejecucin serial se ve como si las transacciones fueran
operaciones que el DBS procesa atmicamente. Las transacciones seriales son correctas dado que
cada transaccin es correcta individualmente, y las transacciones que se ejecutan serialmente no
pueden interferir con otra.
INCONSISTENCIA
Una base de datos est inconsistente si dos datos que deberan ser iguales no lo son. Por ejemplo, un
empleado aparece en una tabla como activo y en otra como jubilado
Slo se produce cuando existe redundancia de datos. La inconsistencia consiste en que no todas las
copias redundantes contienen la misma informacin. As, si existen diferentes modos de obtener la
misma informacin, y esas formas pueden conducir a datos almacenados en distintos sitios. El
problema surge al modificar esa informacin, si lo slo cambiamos esos valores en algunos de los
lugares en que se guardan, las consultas que hagamos ms tarde podrn dar como resultado
respuestas inconsistentes (es decir, diferentes). Puede darse el caso de que dos aplicaciones
diferentes proporcionen resultados distintos para el mismo dato.
- Aquellos algoritmos que estn basados en acceso mutuamente exclusivo adatos compartidos
(candados o bloqueos).
- Aquellos que intentar ordenar la ejecucin de las transacciones de acuerdo a un conjunto de reglas
(protocolos).
Se usan cerraduras o candados de lectura o escritura sobre los datos. Para asegurar la
secuencialidad se usa un protocolo de dos fases, en la fase de crecimiento de la transaccin se
establecen los cerrojos y en la fase dedecrecimiento se liberan los cerrojos. Hay que tener en cuenta
que se pueden producir nterbloqueos. En los sistemas distribuidos el nodo que mantiene un dato se
encarga normalmente de gestionar los cerrojos sobre el mismo.
Candados de dos fases : En los candados de dos fases una transaccin le pone un candado a un
objeto antes de usarlo. Cuando un objeto es bloqueado con un candado por otra transaccin, la
transaccin solicitante debe esperar. Cuando una transaccin libera un candado, ya no puede
solicitar ms candados. En la primera fase solicita y adquiere todos los candados sobre los
elementos que va a utilizar y en la segunda fase libera los candados obtenidos uno por
uno.
Candados de dos fases centralizados: En sistemas distribuidos puede que la administracin de los
candados se dedique a un solo nodo del sistema, por lo tanto, se tiene un despachador central el cual
recibe todas las solicitudes de candados del sistema. La comunicacin se presenta entre el
administrador de transacciones del nodo en donde se origina la transaccin , el administrador de
candados en el nodo central y los procesadores de datos de todos los nodos participantes. Los
nodos participantes son todos aquellos en donde la operacin se va a llevar a cabo.
En los candados de dos fases distribuidos se presentan despachadores en cada nodo del sistema.
Cada despachador maneja las solicitudes de candados para los datos en ese nodo. Una transaccin
puede leer cualquiera de las copias replicada del elemento x, obteniendo un candado de lectura en
cualquiera de las copias de x. La escritura sobre x requiere que se obtengan candados para todas las
copias de x. Los mensajes de solicitud de candados se envan a todos los administradores de
candados que participan en el sistema. Las operaciones son pasadas a los procesadores de datos por
los administradores de candados. Los procesadores de datos envan su mensaje de "fin de
operacin" al administrador de transacciones coordinador
CONTROL OPTIMISTA DE LA CONCURRENCIA
Los algoritmos de control de concurrencia pesimistas asumen que los conflictos entre
transacciones son muy frecuentes y no permiten el acceso a un dato si existe una transaccin
conflictiva que accesa el mismo dato. As, la ejecucin de cualquier operacin de una transaccin
sigue la secuencia de fases: validacin , lectura , cmputo y escritura Los algoritmos optimistas,
por otra parte, retrasan la fase de validacin justo antes de la fase de escritura . De esta manera, una
operacin sometida a un despachador optimista nunca es retrasada.
Algoritmos optimistas:
Los algoritmos de ordenacin por timestamp verifican el correcto ordenamiento de las transacciones
sobre cada acceso a los grnulos al igual que los algoritmos de bloqueo; estos dos tipos de
algoritmos implementan un control a priori. Si el gestor de tareas se disea de modo que deje mayor
libertad a las transacciones y realiza un control de las mismas, en vez de durante su ejecucin en
tiempo de confirmacin de cambios a la BD se est barajando la idea bsica de los mtodos
optimistas de control de concurrencia. Los algoritmos optimistas consideran que todas las
transacciones preparan sus actualizaciones en buffers
privados durante la ejecucin; al finalizar, antes de la confirmacin todas las actualizaciones deben
sufrir un proceso de certificacin (o validacin).
Certificacin:
Accin especial que controla que la confirmacin de actualizaciones de una transaccin en la BD
preserva la serializabilidad. Si la transaccin es certificada las actualizaciones preparadas se harn
visibles a otras transacciones, y si falla la transaccin se abortar. En definitiva, con un control
optimista de la concurrencia, una transaccin sufrir tres fases: fase de lectura:
donde se preparan actualizaciones en reas de trabajo privadas de las
transacciones, fase de certificacin y la posible fase de escritura.
Fases de una transaccin El problema principal de estos mtodos es la eleccin del algoritmo de
certificacin donde el orden de serializacin estar determinado por el orden de certificacin. En
esta fase se deber comprobar que una
transaccin validada Ti ha visto todas las modificaciones de las precedentes transacciones que
tambin lo han sido; dicho de otro modo, todos los grnulos ledos por Ti no deben haber sido
escritos por cualquier otra transaccin Tj certificada entre el comienzo de Ti y la certificacin de Tj.
El algoritmo mantendr los conjuntos de timestamp de lectura y escritura de cada transaccin sobre
los grnulos SR(Ti) y SW(Ti); se aceptar una validacin de Ti si SR(Ti) SW(Tj) = , Tj
certificada durante la fase de lectura de Ti .
En la siguiente figura se propone un algoritmo de certificacin; ste puede rechazar una transaccin
que no
viola el orden de serializabilidad.
Fase de LECTURA Ejecucin Validacin Confirmacin
Fase de CERTIFICACION
Fase de ESCRITURA
Algoritmo de bloqueo (El problema de interbloqueo)
Un sistema esta en interbloqueo cuando uno mas procesos estan operando un evento que no va ha
suceder.
en una situacion en la cual uno o mas procesos estan bloqueados como consecuencia de que cada
proceso tiene retenido sudconjunto de los recursos necesarios para su finalizacion y tengaesperar la
liberacion de recursos restantes retenidos por otros procesos del mismo grupo