Sei sulla pagina 1di 9

Manejo de transacciones:

El manejo de transacciones ha cambiado de manera fundamental. Una transaccin SQL es una


unidad de trabajo que se ejecuta en un servidor de bases de datos. La unidad de trabajo consiste en
una o ms sentencias SQL.
De manera predeterminada, el complemento no considera las transacciones SQL. El complemento
podra intercambiar conexiones para equilibrar la carga en cualquier momento. Los intercambios de
conexin puede ocurrir en mitad de una transaccin. Esto va contra la naturaleza de una transaccin
SQL. De manera predeterminada, el complemento no es seguro con transacciones.
Problemas de concurrencia
La concurrencia es un fenmeno que se presenta en varios contextos. Uno de ellos es la
multiprogramacin ya que el tiempo del procesador es compartido dinmicamente por
varios procesos. Otro caso son las aplicaciones estructuradas, donde la programacin estructurada
se implementa como un conjunto de procesos concurrentes. Y por ltimo se tiene que la misma
estructuracin recin mencionada es utilizada en el diseo de los sistemas operativos, los cuales se
implementan como un conjunto de procesos.
El termino concurrencia se refiere al hecho de que los DBMS (SISTEMAS DE
ADMINISTRACION DE BD) permiten que muchas transacciones puedan accesar a una misma
base de datos a la vez.

En un sistema de estos se necesitan algn tipo de mecanismos de control de concurrencia para


asegurar que las transacciones concurrentes no interfieran entre s.
En sistemas multiusuario, es necesario un mecanismo para controlar la concurrencia. Se pueden
producir inconsistencias importantes derivadas del acceso concurrente, como por ejemplo, el
problema de la operacin perdida.

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.

Secuencialidad en cuanto a conflictos


Consideremos una planificacin P en la cual hay dos instrucciones consecutivas Ii e Ij,
pertenecientes a las transacciones Ti y Tj, respectivamente (ij).
Si Ii e Ij se refieren a diferentes elementos de datos entonces se pueden intercambiar.
Si Ii e Ij se refieren al mismo elemento de datos Q entonces el orden de aparicin se debe
tener en cuenta para la planificacin. Esto se resume en la siguiente tabla:

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.

El trmino concurrencia se refiere al hecho de que los DBMS (Sistemas de Administracin de


Bases de Datos) permiten que muchas transacciones accedan a una misma base de datos a la vez.
Como bien es sabido, en un sistema de stos se necesita algn tipo de mecanismo de control de
concurrencia para asegurar que las transacciones concurrentes no interfieran entre s El control de
accesos concurrentes y especficamente de transacciones concurrentes es manejado por un mdulo
del dbms llamado "scheduler".

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.

Si el DBS procesara transacciones serialmente, significara que no podra ejecutar transacciones


concurrentemente, si entendemos concurrencia como ejecuciones intercaladas. Sin dicha
concurrencia, el sistema usara sus recursos en un nivel relativamente pobre y podra ser sumamente
ineficiente.

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.

Algoritmos de control de concurrencia:

El criterio de clasificacin ms comn de los algoritmos de control deconcurrencia es el tipo de


primitiva de sincronizacin. Esto resulta en dos clases:

- 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).

ALGORITMOS DE CERRADURA O BASADOS EN CANDADOS

En los algoritmos basados en candados, las transacciones indican sus intenciones


solicitando candados al despachador (llamado el administrador de candados) Los candados son de
lectura , tambin llamados compartidos, o de escritura , tambin llamados exclusivos.
En sistemas basados en candados, el despachador es un administrador de candados . El
administrador de transacciones le pasa al administrador de candados la operacin sobre la base de
datos (lectura o escritura) e informacin asociada, como por ejemplo el elemento de datos que es
accesado y el identificador de la transaccin que est enviando la operacin a la base de datos. El
administrador de candados verifica si el elemento de datos que se quiere accesar ya ha sido
bloqueado por un candado. Si el candado solicitado es incompatible con el candado con que el dato
est bloqueado, entonces, la transaccin solicitante es retrasada. De otra forma, el candado se define
sobre el dato en el modo deseado y la operacin a la base de datos es transferida al procesador de
datos. El administrador de transacciones es informado luego sobre el resultado de la operacin. La
terminacin de una transaccin libera todos los candados y se puede iniciar otra transaccin que
estaba esperando el acceso al mismo dato.

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.

Candados de dos fases distribuidos:

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

EN DONDE se presenta en sistemas multiprogramados se presenta cuando los recursos son


compartidos y por consiguiente no son suficiente

Potrebbero piacerti anche