control de actualizaciones concurrentes de bd

Upload: alessandroizcoa

Post on 08-Mar-2016

215 views

Category:

Documents


0 download

DESCRIPTION

control de actualizaciones concurrentes de la de BM

TRANSCRIPT

Que es Control de Actualizaciones Concurrentes

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.

Tipos de bloqueas Unas de las principales tcnicas para controlar la controlar la ejecucin concurrente de las transacciones se base en el concepto de bloquea elementos de informacin un candado es una variable asociada a un elemento de informacin de la base de datos y describe el estado de ese elemento respecto a las posibles operaciones que se pueden aplicar a el en general hay un candado por cada elemento de informacin en la base datos usamos los candados como una forma de sincronizar el acceso a los elementos de la base de datos por parte de las transacciones concurrentes la idea bsica es simple cuando una transaccin deba asegurarse de que algn objeto en el que est interesada por lo general, una tupia de base de datos no cambiar de ninguna forma mientras lo est usando, adquiere un bloqueo sobre ese objeto el efecto del bloqueo es "inhibir todas las dems transacciones" en ese objeto y por lo tanto impedir que lo cambien por lo tanto la primera transaccin es capaz de realizar todo su procesamiento con el conocimiento certero de que el objeto en cuestin permanecer en un estado estable durante todo el tiempo que sta lo desee. Se exige que toda transaccin del sistema siga un conjunto de reglas llamado protocolo de bloqueo, que indica el momento en que una transaccin puede bloquear y desbloquear cada uno de los elementos de datos. Los protocolos de bloqueo restringen el nmero de planificaciones posibles.

Existen muchos modos mediante los cuales se puede bloquear un elemento de datos. En este apartado se centra la atencin en dos de dichos modos:

1. Compartido. Si una transaccin Ti obtiene un bloqueo en modo compartido (denotado por C) sobre el elemento Q, entonces Ti puede leer Q pero no lo puede escribir.

2. Exclusivo. Si una transaccin Ti obtiene un bloqueo en modo exclusivo (denotado por X) sobre el elemento Q, entonces Ti puede tanto leer como escribir Q.

Es necesario que toda transaccin solicite un bloqueo del modo apropiado sobre el elemento de datos Q dependiendo de los tipos de operaciones que se vayan a realizar sobre Q. La peticin se hace al gestor de control de concurrencia. La transaccin puede realizar la operacin slo despus de que el gestor de control de concurrencia conceda el bloqueo a la transaccin.

Si la transaccin A pone un bloqueo exclusivo (X) sobre la tupia t, entonces se rechazar una peticin de cualquier otra transaccin B para un bloqueo de cualquier tipo sobre la tupia t.

Si la transaccin A pone un bloqueo compartido (S) sobre la tupia t entonces: Se rechazar una peticin de cualquier otra transaccin B para un bloqueo X sobre t. Se otorgar una peticin de cualquier otra transaccin B para un bloqueo S sobre t (estoes ahora tambin B tendr un bloqueo S sobre i)

DeadLockEl deadlock es una condicin que ningn sistema o conjunto de procesos quisiera exhibir, ya que consiste en que se presentan al mismo tiempo cuatro condiciones necesarias: La condicin de no apropiacin, la condicin de espera circular, la condicin de exclusin mutua y la condicin de ocupar y esperar un recurso. Ante esto, si el deadlock involucra a todos los procesos del sistema, el sistema ya no podr hacer algo productivo. Si el deadlock involucra algunos procesos, stos quedarn congelados para siempre.En el rea de la informtica, el problema del deadlock ha provocado y producido una serie de estudios y tcnicas muy tiles, ya que ste puede surgir en una sola mquina o como consecuencia de compartir recursos en una red.En el rea de las bases de datos y sistemas distribuidos han surgido tcnicas como el 'two phase locking' y el 'two phase commit' que van ms all de este trabajo. Sin embargo, el inters principal sobre este problema se centra en generar tcnicas para detectar, prevenir o corregir el deadlock.

Las tcnicas para prevenir el deadlock consisten en proveer mecanismos para evitar que se presente una o varias de las cuatro condiciones necesarias del deadlock. Algunas de ellas son:* Asignar recursos en orden lineal: Esto significa que todos los recursos estn etiquetados con un valor diferente y los procesos solo pueden hacer peticiones de recursos 'hacia adelante'. Esto es, que si un proceso tiene el recurso con etiqueta '5' no puede pedir recursos cuya etiqueta sea menor que '5'. Con esto se evita la condicin de ocupar y esperar un recurso.* Asignar todo o nada: Este mecanismo consiste en que el proceso pida todos los recursos que va a necesitar de una vez y el sistema se los da solamente si puede drselos todos, si no, no le da nada y lo bloquea.

Si se tiene cuidado al en la forma de asignar los recursos se pueden evitar situaciones de Deadlock. Supongamos un ambiente en el que todos los procesos declaren a priori la cantidad mxima de recursos que habr de usar.

Estado Seguro: un estado es seguro si se pueden asignar recursos a cada proceso (hasta su mximo) en algn orden sin que se genere Deadlock. El estado es seguro si existe un ordenamiento de un conjunto de procesos {P1...Pn} tal que para cada Pi los recursos que Pi podr utilizar pueden ser otorgados por los recursos disponibles mas los recursos utilizados por los procesos Pj,j