SlideShare una empresa de Scribd logo
1 de 15
1
BASE DE DATOS DISTRIBUIDAS
UNIDAD 4
TRANSACCIONES
CONTROL
DE CONCURRENCIA
2
Contenido
Tabla de contenido
INTRODUCCIÓN....................................................................................................................... 3
DEFINICIÓN DE CONCURRENCIA ......................................................................................... 4
PROBLEMAS DE CONCURRENCIA........................................................................................ 4
CONTROL DE CONCURRENCIA EN BASES DE DATOS ..................................................... 7
BLOQUEOS............................................................................................................................... 8
BASADOS EN ESTAMPAS DE TIEMPO................................................................................ 11
PRUEBAS DE VALIDACIÓN OPTIMISTAS............................................................................ 11
DISCIPLINAS DEL INTERBLOQUEO: PREVENCIÓN, DETECCIÓN, ELIMINACIÓN Y
RECUPERACIÓN.................................................................................................................... 12
CONCLUSIÓN ......................................................................................................................... 15
REFERENCIAS........................................................................................................................ 15
3
INTRODUCCIÓN
Concurrencia se refiere al hecho de que los Sistemas Administradores de Base de
Datos permiten que muchas transacciones accedan a una misma Base de Datos a la
vez.
Cuando existen varios usuarios intentando modificar los datos al mismo tiempo, se
necesita establecer algún tipo de control para que dichas modificaciones de un
usuario no interfieran en las de los otros, a este sistema se le denomina control de
concurrencia.
En este informe podremos ver algunos de los problemas que se presentan cuando la
concurrencia no se controla y algunos de los mecanismos de bloqueo que nos
permiten manejar la concurrencia en las transacciones. De esta manera, los sistemas
de control de concurrencia deben garantizar la consistencia de transacciones que se
ejecutan de manera concurrente.
4
DEFINICIÓN DE CONCURRENCIA
En el campo informático, el termino concurrencia se refiere a la capacidad de los
Sistemas de Administración de Base de Datos, de permitir que múltiples procesos
sean ejecutados al mismo tiempo, y que también puedan interactuar entre sí.
Los procesos concurrentes pueden ser ejecutados realmente de forma simultánea,
sólo cuando cada uno es ejecutado en diferentes procesadores. En cambio, la
concurrencia es simulada si sólo existe un procesador encargado de ejecutar todos
los procesos, simulando la concurrencia, ocupándose de forma alternada de uno y
otro proceso a muy pequeños intervalos de tiempo. De esta manera simula que se
están ejecutando a la vez.
Algunos casos de concurrencia, pueden ser:
● La multiprogramación, ya que el tiempo del procesador es compartido
dinámicamente por varios procesos.
● Las aplicaciones estructuradas, donde la programación estructurada se
implementa como un conjunto de procesos concurrentes.
● También se tiene que la misma estructura recién mencionada es utilizada en
el diseño de los sistemas operativos, los cuales se implementan como un
conjunto de procesos.
Debido a que los procesos concurrentes en un sistema pueden interactuar entre otros
también en ejecución, el número de caminos de ejecución puede ser extremadamente
grande, resultando en un comportamiento sumamente complejo. Las dificultades
asociadas a la concurrencia han sido pensadas para el desarrollo de lenguajes de
programación y conceptos que permitan hacer la concurrencia más manejable.
PROBLEMAS DE CONCURRENCIA
Existen tres formas en las que una transacción, aunque sea correcta por sí misma,
puede producir una respuesta incorrecta si alguna otra transacción interfiere con ella
en alguna forma.
Consideremos que la transacción que interfiere también puede ser correcta; lo que
produce el resultado incorrecto general es el intercalado sin control entre las
operaciones de las dos transacciones correctas.
Los tres problemas son:
● El problema de la Actualización Perdida
● El problema de la Dependencia No Confirmada
● El problema del Análisis Inconsistente
Veamos algunos ejemplos para entender cómo es que los programas pueden
interferir con otros. Tomaremos como ejemplo las transacciones de las cuentas de un
banco, supongamos que tenemos un programa llamado Depositar, el cual deposita
dinero en una cuenta.
5
Procederé Depositar (Cuenta, Monto)
begin
Start;
temp:= Leer (Cuentas [Cuenta]);
temp := temp + Monto;
Escribir (Cuentas [Cuenta], temp);
Commit;
end
Supongamos que la cuenta 7 tiene un saldo de $1000 y que el cliente 1 deposita $100
en la cuenta 7 en el mismo instante en el que el cliente 2 deposita $100000 en la
cuenta 7. Cada uno de los clientes llama al procedimiento Depositar de tal manera
que se crea una transacción para realizar su actualización. La ejecución concurrente
de éstos depósitos produce una secuencia de lecturas y escrituras en la base de
datos, tales como
Leer1 (Cuentas [7]) devuelve el valor de $1000
Leer2 (Cuentas [7]) devuelve el valor de $1000
Escribir2 (Cuentas [7], $101000)
Commit2
Escribir1 (Cuentas [7], $1100)
Commit1
El resultado de esta ejecución es que la Cuenta [7] contiene $1100. A pesar que el
depósito del cliente 2 concluyó satisfactoriamente, la interferencia con la ejecución de
Depósito del cliente 1 causó que el depósito del cliente 2 se pierda. Este fenómeno
de actualización perdida ocurre cuando dos transacciones, mientras intentan
modificar un dato, ambas leen el valor antiguo del elemento antes que ninguna haya
modificado su valor.
Otro problema del control de concurrencia se ilustra con el siguiente programa,
llamado Imprimir Suma, el cual imprime la suma de los saldos de dos cuentas.
Procedure ImprimirSuma (Cuenta1, Cuenta2)
begin
Start;
temp1:= Leer (Cuentas [Cuenta1]);
Output (temp1);
temp2:= Leer (Cuentas [Cuenta2]);
Output (temp2);
temp1:= temp1 $+$ temp2;
Output (temp1);
Commit;
end
Supongamos que las cuentas 8 y 9 tienen un saldo de $200 cada una, y que el cliente
3 imprime los saldos de las cuentas 8 y 9 (utilizando ImprimirSuma) en el mismo
6
instante en el que el cliente 4 transfiere $100 de la cuenta 8 a la cuenta 9 (utilizando
Transferir). La ejecución concurrente de estas dos transacciones puede originar la
siguiente ejecución de operaciones de la base de datos.
Leer4 (Cuentas [8]) devuelve el valor de $200
Escribir4 (Cuentas [8], $100)
Leer3 (Cuentas [8]) devuelve el valor de $100
Leer3 (Cuentas [9]) devuelve el valor de $200
Leer4 (Cuentas [9]) devuelve el valor de $200
Escribir4 (Cuentas [9], $300)
Commit4
Commit3
El procedimiento Transferir interfiere con Imprimir Suma en esta ejecución, causando
que Imprimir Suma imprima el valor de $300, la cual no es la suma correcta de los
saldos de las cuentas 8 y 9. El procedimiento Imprimir Suma no capturó los $100 en
tránsito de la cuenta 8 a la cuenta 9. Es importante recalcar que, a pesar de la
interferencia, Transferir todavía asigna los valores correctos en la base de datos.
Este tipo de interferencia se denomina análisis inconsistente que ocurre cuando
una transacción lee un dato antes que otra transacción lo actualice y lea otro dato
después que la misma transacción lo ha actualizado. Es decir, la extracción (lectura)
de los datos sólo percibe algunos de los resultados de la transacción de actualización.
Para conseguir el objetivo del control de concurrencia se utiliza un sincronizador. Un
sincronizador es un programa (o una colección de ellos) que controla la ejecución
concurrente de las transacciones; su función radica en ordenar las operaciones que
forman parte de las transacciones que se requieren ejecutar concurrentemente, de tal
manera que la ejecución resultante sea correcta. Usando tres operaciones básicas
(ejecución, rechazo y retraso de una operación) el sincronizador puede controlar el
orden en el cual las operaciones son ejecutadas por el Administrador de Datos...
Cuando éste recibe una operación de la transacción (mediante el TM), usualmente
trata de pasarla al DM inmediatamente, si no produce alguna ejecución incorrecta. Si
el sincronizador decide que la ejecución de la operación puede producir resultados
incorrectos, puede o retrasarla (en caso de que pueda procesar correctamente la
operación más adelante) o rechazarla (si no es posible procesarla en el futuro de tal
manera que produzca resultados correctos).
Por ejemplo, retomemos la ejecución concurrente de dos transacciones Depositar,
que depositan $100 y $100,000 en la cuenta 7
Leer1 (Cuentas [7]) devuelve el valor de $1000
Leer2 (Cuentas [7]) devuelve el valor de $1000
Escribir2 (Cuentas [7], $101000)
Commit2
Escribir1 (Cuentas [7], $1100)
Commit1
7
Para evitar esta ejecución incorrecta, un sincronizador debe decidir rechazar Escribir1
provocando que la transacción T1 sea cancelada. En este caso, el usuario o el
Administrador de Transacciones pueden reenviar T1, la cual ahora se puede ejecutar
sin interferir con T2. Como otra alternativa, el sincronizador puede prevenir la
ejecución anterior retrasando Leer2 hasta que reciba y procese Escribir1 y de esta
forma evitando que se rechace Escribir1 más adelante.
Por lo tanto, un DBMS que controla la ejecución concurrente de sus transacciones
tiene una estructura como la siguiente:
CONTROL DE CONCURRENCIA EN BASES DE DATOS
El control de transacciones concurrentes en una base de datos brinda un eficiente
desempeño del Sistema de Administración de Base de Datos, puesto que permite
controlar la ejecución de transacciones que operan en paralelo, accediendo a
información compartida y, por lo tanto, interfiriendo potencialmente unas con otras.
El objetivo de los métodos de control de concurrencia es garantizar la no inferencia o
la propiedad de aislamiento de transacciones que se ejecutan de manera concurrente.
Los distintos objetivos atacan el problema garantizando que las transacciones se
ejecuten en un plan que sea serializarle, es decir, que el resultado sea equivalente a
el resultante de ejecutar un plan en serie.
El criterio de clasificación más común de los algoritmos de control de concurrencia es
el tipo de primitiva de sincronización. Esto resulta en dos clases: aquellos algoritmos
que están basados en acceso mutuamente exclusivo a datos compartidos (bloqueos)
y aquellos que intentar ordenar la ejecución de las transacciones de acuerdo a un
conjunto de reglas (protocolos). Sin embargo, esas primitivas se pueden usar en
algoritmos con dos puntos de vista diferentes: el punto de vista pesimista que
considera que muchas transacciones tienen conflictos con otras, o el punto de vista
optimista que supone que no se presentan muchos conflictos entre transacciones.
Los algoritmos pesimistas sincronizan la ejecución concurrente de las transacciones
en su etapa inicial de su ciclo de ejecución. Los algoritmos optimistas retrasan la
sincronización de las transacciones hasta su terminación. Ambos grupos de métodos,
8
pesimistas y optimistas, consisten de algoritmos basados en bloqueos y algoritmos
basados en marcas de tiempo, entre otros.
Los protocolos basados en bloqueos son los más utilizados por los DBMS
comerciales. Los demás tienen un alcance más teórico que práctico.
BLOQUEOS
Un bloqueo en general es cuando una acción que debe ser realizada está esperando
a un evento. Para manejar los bloqueos hay distintos acercamientos: prevención,
detección, y recuperación. También es necesario considerar factores como que hay
sistemas en los que permitir un bloqueo es inaceptable y catastrófico, y sistemas en
los que la detección del bloqueo es demasiado costosa.
En el caso específico de las bases de datos distribuidas usar bloqueo de recursos,
peticiones para probar, establecer o liberar bloqueos requiere mensajes entre los
manejadores de transacciones y el calendarizador. Para esto existen dos formas
básicas:
● Autónoma: cada nodo es responsable por sus propios bloqueos de recursos.
○ Una transacción sobre un elemento con n replicas requiere 5n mensajes
○ Petición del recurso
○ Aprobación de la petición
○ Mensaje de la transacción
○ Reconocimientos de transacción exitosa
○ Peticiones de liberación de recursos
● Copia Primaria: un nodo primario es responsable para todos los bloqueos de
recursos
○ Una transacción sobre un elemento con n copias requiere n mensajes
○ Una petición del recurso
○ Una aprobación de la petición
○ n mensajes de la transacción
○ n reconocimientos de transacción exitosa
○ Una petición de liberación de recurso
Podemos definir que dos operaciones entran en conflicto que debe ser resuelto si
ambas acceden a la misma data, y una de ellas es de escritura y si fueron realizadas
por transacciones distintas.
9
Bloqueo Mortal
En sistemas operativos, el bloqueo mutuo (también conocido como interbloqueo,
traba mortal, deadlock, abrazo mortal) es el bloqueo permanente de un conjunto de
procesos o hilos de ejecución en un sistema concurrente que compiten por recursos
del sistema o bien se comunican entre ellos. A diferencia de otros problemas de
concurrencia de procesos, no existe una solución general para los interbloqueos.
Todos los interbloqueos surgen de necesidades que no pueden ser satisfechas, por
parte de dos o más procesos. En la vida real, un ejemplo puede ser el de dos niños
que intentan jugar al arco y flecha, uno toma el arco, el otro la flecha. Ninguno puede
jugar hasta que alguno libere lo que tomó.
En el siguiente ejemplo, dos procesos compiten por dos recursos que necesitan para
funcionar, que sólo pueden ser utilizados por un proceso a la vez. El primer proceso
obtiene el permiso de utilizar uno de los recursos (adquiere el lock sobre ese recurso).
El segundo proceso toma el lock del otro recurso, y luego intenta utilizar el recurso ya
utilizado por el primer proceso, por lo tanto queda en espera. Cuando el primer
proceso a su vez intenta utilizar el otro recurso, se produce un interbloqueo, donde
los dos procesos esperan la liberación del recurso que utiliza el otro proceso.
Soluciones
El control de concurrencia y detección y manejo de bloqueos es un área de mucho
estudio en las bases de datos distribuidas, a pesar de esto no hay ningún algoritmo
aceptado para solucionar el problema. Esto se debe a varios factores de los cuales
se consideran a los siguientes tres los más determinantes:
La data puede estar duplicada en un BDD, por tanto, el manejador de la BDD es
responsable de localizar y actualizar la data duplicada.
Si un nodo falla o la comunicación con un nodo falla mientras se realiza una
actualización, el manejador debe asegurarse de que los efectos se reflejen una vez
el nodo se recupere del fallo.
La sincronización de transacciones en sitios o nodos múltiples es difícil ya que los
nodos no pueden obtener información inmediata de las acciones realizadas en otros
nodos concurrentemente.
Para el control de bloqueos mutuos no se ha desarrollado ninguna solución viable y
la forma más simple y que la mayoría de productos utilizan es la implementación de
un tiempo máximo de espera en las peticiones de bloqueos.
Causa de estas dificultades más de 20 algoritmos de control de concurrencia se han
propuesto en el pasado, y aun así siguen apareciendo nuevos. Una revisión
bibliográfica muestra que la mayoría de los algoritmos son variantes del 2PL (2-phase
locking o bloqueo de dos fases) o el algoritmo de time-stamp. A continuación se
explican estos dos algoritmos básicos.
10
Bloqueo de dos fases (2PL)
El algoritmo 2PL utiliza bloqueos de lectura y escritura para prevenir conflictos entre
operaciones. Consiste en los siguientes pasos para una transacción T:
Obtiene bloqueo de lectura para un elemento L (bloqueo compartido)
Obtiene bloqueo de escritura para un elemento E (bloqueo exclusivo)
Lee el elemento L
Escribe en el elemento E
Libera el bloqueo de L
Libera el bloqueo de E
Las reglas básicas para manejar los bloqueos son: transacciones distintas no pueden
tener acceso simultáneamente a un elemento (lectura-escritura o escritura-escritura),
y una vez se libere un bloqueo no se puede pedir otro, es decir, los bloqueos de la
transacción crecerán mientras no libere ninguno y luego de liberar alguno solo puede
liberar los demás.
Ejemplos del algoritmo 2PL son
La básica en la que se sigue el esquema previamente explicado con la variante que
el bloqueo de escritura se pide para todas las copias del elemento.
2PL de copia primaria: en vez de pedir bloqueo para cada copia del elemento de
escritura se le pide a una copia primaria o principal.
2PL de voto: se pide a todos los nodos que voten para ver si se concede el bloqueo.
2PL centralizado: el manejador de bloqueos está centralizado y todas las peticiones
de bloqueo las maneja el.
Antes de implementar un algoritmo de control de concurrencia 2PL es necesario
considerar distintos factores como cuál es la unidad atómica más pequeña que el
sistema permite bloquear, cual es el intervalo de sincronización para todas las copias
de un elemento, donde se deben colocar las tablas con la información de los bloqueos
y por último que tan probable es que ocurra por los factores anteriores un bloqueo
mutuo.
Time-stamp
Cada transacción realizada se le asigna un timestamp (literalmente: sello de tiempo)
único en el nodo que se originó. Este sello se adjunta a cada petición de lectura y
escritura. En el caso de que se dé un conflicto de que dos operaciones de escritura
traten de acceder al mismo elemento, este se resuelve serializándolo respecto a los
sellos que tengan. A pesar de que existen varios algoritmos de control de
concurrencia basados en timestamps, muy pocos son utilizados en aplicaciones
comerciales. Esto es en gran parte porque se requiere que el sistema distribuido
cuente con un reloj sincronizado que es raro que se tenga implementado.
11
BASADOS EN ESTAMPAS DE TIEMPO
A diferencia de los algoritmos basados en candados, los algoritmos basados en
estampas de tiempo no pretenden mantener la seriabilidad por exclusión mutua. En
lugar de eso, ellos seleccionan un orden de serialización en primera instancia y
ejecutan las transacciones de acuerdo a ellas. Para establecer este ordenamiento,
el administrador de transacciones le asigna a cada transacción Ti una estampa de
tiempo única ts (Ti) cuando ésta inicia. Una estampa de tiempo es un identificador
simple que sirve para identificar cada transacción de manera única. Otra propiedad
de las estampas de tiempo es la monoticidad, esto es, dos estampas de tiempo
generadas por el mismo administrador de transacciones deben ser
monotonicamente crecientes. Así, las estampas de tiempo son valores derivados de
un dominio totalmente ordenado.
Existen varias formas en que las estampas de tiempo se pueden asignar. Un
método es usar un contador global monotonicamente creciente. Sin embargo, el
mantenimiento de contadores globales es un problema en sistemas distribuidos. Por
lo tanto, es preferible que cada nodo asigne de manera autónoma las estampas de
tiempos basándose en un contador local. Para obtener la unicidad, cada nodo le
agrega al contador su propio identificador. Así, la estampa de tiempo es un par de la
forma <contador local, identificador de nodo >
Note que el identificador de nodo se agrega en la posición menos significativa, de
manera que, éste sirve solo en el caso en que dos nodos diferentes le asignen el
mismo contador local a dos transacciones diferentes. El administrador de
transacciones asigna también una estampa de tiempo a todas las operaciones
solicitadas por una transacción. Más aún, a cada elemento de datos x se le asigna
una estampa de tiempo de escritura, wts (x), y una estampa de tiempo de lectura,
rts (x); sus valores indican la estampa de tiempo más grande para cualquier lectura
y escritura de x, respectivamente.
PRUEBAS DE VALIDACIÓN OPTIMISTAS
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 transacción conflictiva que accesa el mismo dato. Las operaciones de lectura,
cómputo y escritura de cada transacción se procesan libremente sin actualizar la
base de datos corriente. Cada transacción inicialmente hace sus cambios en copias
locales de los datos. La fase de validación consiste en verificar si esas
actualizaciones conservan la consistencia de la base de datos. Si la respuesta es
positiva, los cambios se hacen globales (escritos en la base de datos corriente). De
otra manera, la transacción es abortada y tiene que reiniciar
Lo que se hace es dejar ejecutar las transacciones y si al terminar se detecta que ha
habido conflicto se aborta y se reinicia la transacción.
12
Cada transacción tiene tres fases:
Fase de
lectura
Cuerpo de la transacción donde se copian datos desde la base de datos, copias que
pueden ser actualizadas pero sin copiar a la base de datos
Fase de validación
Se comprueba que no existan conflictos
Fase de escritura
Si no existen conflictos se instalan lo cambios en la base de datos
Conflictos entre
operaciones:
Dos operaciones están en conflicto entre si cuando, operan sobre los mismos
datos, una de las operaciones es de escritura, o cada operación pertenece a
diferentes transacciones.
DISCIPLINAS DEL INTERBLOQUEO: PREVENCIÓN,
DETECCIÓN, ELIMINACIÓN Y RECUPERACIÓN
Un interbloqueo se produce cuando dos o más tareas se bloquean entre
sí permanentemente teniendo cada tarea un bloqueo en un recurso que las otras
tareas intentan bloquear.
Un interbloqueo es una condición que se puede dar en cualquier sistema con varios
subprocesos, no sólo en un sistema de administración de bases de datos
relacionales, y puede producirse para recursos distintos a los bloqueos en objetos
de base de datos
Por ejemplo:
 La transacción A tiene un bloqueo compartido de la fila 1.
 La transacción B tiene un bloqueo compartido de la fila 2.
 La transacción A ahora solicita un bloqueo exclusivo de la fila 2 y se bloquea
hasta que la transacción B finalice y libere el bloqueo compartido que tiene de
la fila 2.
 La transacción B ahora solicita un bloqueo exclusivo de la fila 1 y se bloquea
hasta que la transacción A finalice y libere el bloqueo compartido que tiene de
la fila 1.
13
Prevención del interbloqueo.
Objetivo: conseguir que sea imposible la aparición de situaciones de interbloqueo.
Impedir que se produzca una de las cuatro condiciones necesarias para producirlo:
Exclusión mutua, Retención y espera, No expropiación, y Espera circular.
Condicionar un sistema para quitar cualquier posibilidad de ocurrencia
de interbloqueo.
Que no se cumpla una condición necesaria
 “Exclusión mutua” y “sin expropiación” no se pueden relajar. Dependen de
carácter intrínseco del recurso.
 Las otras dos condiciones son más prometedoras.
Detección
Existen diversos algoritmos para ello en la detección de ciclos en el grafo de
esperas, entre ellos:
Algoritmo1: comprueba la existencia de ciclos mediante la eliminación de nodos
terminales.
Algoritmo2: comprueba posibles ciclos desde la última transacción bloqueada y
marcando los nodos por lo que pasa. Si pasa dos veces por el mismo nodo a
detectado un ciclo.
Recuperación de Interbloqueo.
Limpiar un sistema de interbloqueos, una vez que fueron detectados.
Cuando se ha detectado que existe un interbloqueo, podemos actuar de varias
formas. Una posibilidad es informar al operador que ha ocurrido un interbloqueo y
dejar que el operador se ocupe de él manualmente. La otra posibilidad es dejar que
el sistema se recupere automáticamente del interbloqueo. Dentro de esta
recuperación automática tenemos dos opciones para romper el interbloqueo: Una
consiste en abortar uno o más procesos hasta romper la espera circular, y la
segunda es apropiar algunos recursos de uno o más de los procesos bloqueados.
Eliminar interbloqueos.
Para eliminar interbloqueos abortando un proceso, tenemos dos métodos; en
ambos, el sistema recupera todos los recursos asignados a los procesos
terminados.
14
Abortar todos los procesos interbloqueos. Esta es una de las soluciones más
comunes, adoptada por Sistemas Operativos. Este método romperá definitivamente
el ciclo de interbloqueo pero con un costo muy elevado, ya que estos procesos
efectuaron cálculos durante mucho tiempo y habrá que descartar los resultados de
estos cálculos parciales, para quizá tener que volver a calcularlos más tarde.
Abortar un proceso en cada ocasión hasta eliminar el ciclo de interbloqueo. El orden
en que se seleccionan los procesos para abortarlos debe basarse en algún criterio
de costo mínimo. Después de cada aborto, debe solicitarse de nuevo el algoritmo de
detección, para ver si todavía existe el interbloqueo. Este método cae en mucho
tiempo de procesamiento adicional.
Si éste se encuentra actualizando un archivo, cortarlo a la mitad de la operación
puede ocasionar que el archivo quede en un mal estado.
Si se utiliza el método de terminación parcial, entonces, dado un conjunto de
procesos bloqueados, debemos determinar cuál proceso o procesos debe
terminarse para intentar romper el interbloqueo. Se trata sobre todo de una cuestión
económica, debemos abortar los procesos que nos representen el menor costo
posible.
15
CONCLUSIÓN
El control de concurrencias en las bases de datos no solo permite mejorar la calidad
de funcionamiento de las aplicaciones sino que incluso hacen posible que se puedan
realizar muchos de los sistemas existentes, lo que sin la existencia de estos controles
no sería factibles de realizar.
El correcto control de concurrencias permite además mantener información
consistente en las bases de datos, así como también evita la aparición de errores en
las recuperaciones y o respaldos que se realicen de una base de datos.
En este informe pudimos ver los problemas que se presentan cuando la concurrencia
no se controla y algunos de los mecanismos de bloqueo que nos permiten manejar la
concurrencia en las transacciones. De esta manera, los sistemas de control de
concurrencia deben garantizar la consistencia de la información en la Base de Datos.
REFERENCIAS
http://martinezprosperobdd.blogspot.mx/2012/11/control-de-concurrencia.html
http://basesdatosdistribuidas.blogspot.mx/2012/11/control-de-concurrencia.html
http://basesdatosdistribuidas.blogspot.mx/2012/11/disciplinas-del-interbloqueo.html
http://lira-m.blogspot.mx/2012/11/investigar-las-disciplinas-del.html

Más contenido relacionado

La actualidad más candente

Capas del modelo OSI y Protocolos que intervienen en cada capa
Capas del modelo OSI y Protocolos que intervienen en cada capaCapas del modelo OSI y Protocolos que intervienen en cada capa
Capas del modelo OSI y Protocolos que intervienen en cada capaaeross
 
Origen del Modelo OSI y su impacto en als estructuras de redes
Origen del Modelo OSI y su impacto en als estructuras de redesOrigen del Modelo OSI y su impacto en als estructuras de redes
Origen del Modelo OSI y su impacto en als estructuras de redesKim Sorel Rush
 
Modelos de arquitecturas de computadoras
Modelos de arquitecturas de computadorasModelos de arquitecturas de computadoras
Modelos de arquitecturas de computadorasYESENIA CETINA
 
Comunicación y Sincronizacion de Procesos
Comunicación y Sincronizacion de ProcesosComunicación y Sincronizacion de Procesos
Comunicación y Sincronizacion de ProcesosLorena Ramos
 
CUADRO COMPARATIVO ENTRE MODELO OSI Y TCP/IP
CUADRO COMPARATIVO ENTRE MODELO OSI Y TCP/IPCUADRO COMPARATIVO ENTRE MODELO OSI Y TCP/IP
CUADRO COMPARATIVO ENTRE MODELO OSI Y TCP/IPdisenarUniminuto
 
Sistemas paralelos vs distribuidos
Sistemas paralelos vs distribuidosSistemas paralelos vs distribuidos
Sistemas paralelos vs distribuidosJesús Navarro
 
Tareas de ingenieria de requerimientos
Tareas de ingenieria de requerimientosTareas de ingenieria de requerimientos
Tareas de ingenieria de requerimientosnenyta08
 
Tópicos Avanzados de Programación - Unidad 2 componentes y librerias
Tópicos Avanzados de Programación - Unidad 2 componentes y libreriasTópicos Avanzados de Programación - Unidad 2 componentes y librerias
Tópicos Avanzados de Programación - Unidad 2 componentes y libreriasJosé Antonio Sandoval Acosta
 
Procesos Ligeros: Hilos o Hebras
Procesos Ligeros: Hilos o HebrasProcesos Ligeros: Hilos o Hebras
Procesos Ligeros: Hilos o HebrasJ M
 
Modelado Orientado a Objetos
Modelado Orientado a ObjetosModelado Orientado a Objetos
Modelado Orientado a ObjetosRafael Miranda
 
Requerimiento funcional y no funcional
Requerimiento funcional y no funcional Requerimiento funcional y no funcional
Requerimiento funcional y no funcional CristobalFicaV
 
Sistema De Gestión De Base De Datos
Sistema De Gestión De Base De DatosSistema De Gestión De Base De Datos
Sistema De Gestión De Base De DatosGuillermo Chirinos
 
Métodos para la detección y corrección de errores
Métodos para la detección y corrección de erroresMétodos para la detección y corrección de errores
Métodos para la detección y corrección de erroresDaniel Huerta Cruz
 
Ejemplos de proyectos al modelo en cascada
Ejemplos de proyectos  al modelo en cascadaEjemplos de proyectos  al modelo en cascada
Ejemplos de proyectos al modelo en cascadaaics-1986-13-saraguro
 

La actualidad más candente (20)

Capas del modelo OSI y Protocolos que intervienen en cada capa
Capas del modelo OSI y Protocolos que intervienen en cada capaCapas del modelo OSI y Protocolos que intervienen en cada capa
Capas del modelo OSI y Protocolos que intervienen en cada capa
 
Origen del Modelo OSI y su impacto en als estructuras de redes
Origen del Modelo OSI y su impacto en als estructuras de redesOrigen del Modelo OSI y su impacto en als estructuras de redes
Origen del Modelo OSI y su impacto en als estructuras de redes
 
Modelos de arquitecturas de computadoras
Modelos de arquitecturas de computadorasModelos de arquitecturas de computadoras
Modelos de arquitecturas de computadoras
 
Comunicación y Sincronizacion de Procesos
Comunicación y Sincronizacion de ProcesosComunicación y Sincronizacion de Procesos
Comunicación y Sincronizacion de Procesos
 
CUADRO COMPARATIVO ENTRE MODELO OSI Y TCP/IP
CUADRO COMPARATIVO ENTRE MODELO OSI Y TCP/IPCUADRO COMPARATIVO ENTRE MODELO OSI Y TCP/IP
CUADRO COMPARATIVO ENTRE MODELO OSI Y TCP/IP
 
Ingenieria de software
Ingenieria de softwareIngenieria de software
Ingenieria de software
 
Sistemas paralelos vs distribuidos
Sistemas paralelos vs distribuidosSistemas paralelos vs distribuidos
Sistemas paralelos vs distribuidos
 
Algebra relacional
Algebra relacionalAlgebra relacional
Algebra relacional
 
Lenguajes de simulación
Lenguajes de simulaciónLenguajes de simulación
Lenguajes de simulación
 
Tareas de ingenieria de requerimientos
Tareas de ingenieria de requerimientosTareas de ingenieria de requerimientos
Tareas de ingenieria de requerimientos
 
Casos de uso
Casos de usoCasos de uso
Casos de uso
 
Tópicos Avanzados de Programación - Unidad 2 componentes y librerias
Tópicos Avanzados de Programación - Unidad 2 componentes y libreriasTópicos Avanzados de Programación - Unidad 2 componentes y librerias
Tópicos Avanzados de Programación - Unidad 2 componentes y librerias
 
Procesos Ligeros: Hilos o Hebras
Procesos Ligeros: Hilos o HebrasProcesos Ligeros: Hilos o Hebras
Procesos Ligeros: Hilos o Hebras
 
Modelado Orientado a Objetos
Modelado Orientado a ObjetosModelado Orientado a Objetos
Modelado Orientado a Objetos
 
Requerimiento funcional y no funcional
Requerimiento funcional y no funcional Requerimiento funcional y no funcional
Requerimiento funcional y no funcional
 
Sistema De Gestión De Base De Datos
Sistema De Gestión De Base De DatosSistema De Gestión De Base De Datos
Sistema De Gestión De Base De Datos
 
Automatas y gramaticas
Automatas y gramaticasAutomatas y gramaticas
Automatas y gramaticas
 
Tecnicas de Administracion de Memoria
Tecnicas de Administracion de MemoriaTecnicas de Administracion de Memoria
Tecnicas de Administracion de Memoria
 
Métodos para la detección y corrección de errores
Métodos para la detección y corrección de erroresMétodos para la detección y corrección de errores
Métodos para la detección y corrección de errores
 
Ejemplos de proyectos al modelo en cascada
Ejemplos de proyectos  al modelo en cascadaEjemplos de proyectos  al modelo en cascada
Ejemplos de proyectos al modelo en cascada
 

Destacado

Unidad 6 Lenguaje Sql 2
Unidad 6 Lenguaje Sql 2Unidad 6 Lenguaje Sql 2
Unidad 6 Lenguaje Sql 2Sergio Sanchez
 
Unidad 6 Lenguaje Sql 3 (Restricciones Ddl Avanzado)
Unidad 6 Lenguaje Sql 3 (Restricciones Ddl Avanzado)Unidad 6 Lenguaje Sql 3 (Restricciones Ddl Avanzado)
Unidad 6 Lenguaje Sql 3 (Restricciones Ddl Avanzado)Sergio Sanchez
 
INTEGRIDAD DE ENTIDAD E INTEGRIDAD REFERENCIAL EN SQL SERVER Y ACCESS
INTEGRIDAD DE ENTIDAD E INTEGRIDAD REFERENCIAL EN SQL SERVER Y ACCESSINTEGRIDAD DE ENTIDAD E INTEGRIDAD REFERENCIAL EN SQL SERVER Y ACCESS
INTEGRIDAD DE ENTIDAD E INTEGRIDAD REFERENCIAL EN SQL SERVER Y ACCESSitsl
 
Reglas de integridad bd relacional
Reglas de integridad bd relacionalReglas de integridad bd relacional
Reglas de integridad bd relacionalDenisse C
 

Destacado (7)

Ejercicio 2 transacciones
Ejercicio 2 transaccionesEjercicio 2 transacciones
Ejercicio 2 transacciones
 
Unidad 6 Lenguaje Sql 2
Unidad 6 Lenguaje Sql 2Unidad 6 Lenguaje Sql 2
Unidad 6 Lenguaje Sql 2
 
Restricciones bd
Restricciones bdRestricciones bd
Restricciones bd
 
INTEGRIDAD DE DATOS
INTEGRIDAD DE DATOSINTEGRIDAD DE DATOS
INTEGRIDAD DE DATOS
 
Unidad 6 Lenguaje Sql 3 (Restricciones Ddl Avanzado)
Unidad 6 Lenguaje Sql 3 (Restricciones Ddl Avanzado)Unidad 6 Lenguaje Sql 3 (Restricciones Ddl Avanzado)
Unidad 6 Lenguaje Sql 3 (Restricciones Ddl Avanzado)
 
INTEGRIDAD DE ENTIDAD E INTEGRIDAD REFERENCIAL EN SQL SERVER Y ACCESS
INTEGRIDAD DE ENTIDAD E INTEGRIDAD REFERENCIAL EN SQL SERVER Y ACCESSINTEGRIDAD DE ENTIDAD E INTEGRIDAD REFERENCIAL EN SQL SERVER Y ACCESS
INTEGRIDAD DE ENTIDAD E INTEGRIDAD REFERENCIAL EN SQL SERVER Y ACCESS
 
Reglas de integridad bd relacional
Reglas de integridad bd relacionalReglas de integridad bd relacional
Reglas de integridad bd relacional
 

Similar a control de concurrencia

Practica- Transacciones y Concurrencia en Oracle y MySQL
Practica- Transacciones y Concurrencia en Oracle y MySQLPractica- Transacciones y Concurrencia en Oracle y MySQL
Practica- Transacciones y Concurrencia en Oracle y MySQLIvan Luis Jimenez
 
Administración de Transacciones - del tema 1 al 4
Administración de Transacciones - del tema 1 al 4Administración de Transacciones - del tema 1 al 4
Administración de Transacciones - del tema 1 al 4Mayito Pdg
 
Capítulo 17 ( Introducción a los conceptos y la Teoría sobre el procesamiento...
Capítulo 17 ( Introducción a los conceptos y la Teoría sobre el procesamiento...Capítulo 17 ( Introducción a los conceptos y la Teoría sobre el procesamiento...
Capítulo 17 ( Introducción a los conceptos y la Teoría sobre el procesamiento...Liz Ocampo
 
Gestion de transacciones "Investigación"
Gestion de transacciones "Investigación"Gestion de transacciones "Investigación"
Gestion de transacciones "Investigación"UNIVERSIDAD VERACRUZANA
 
transaction-management
transaction-managementtransaction-management
transaction-managementShami Zama
 
Transacciones
TransaccionesTransacciones
Transaccionesemnero
 
Transacciones en mysql
Transacciones en mysqlTransacciones en mysql
Transacciones en mysqlCarmen Sena C
 
Transacciones base de datos
Transacciones base de datosTransacciones base de datos
Transacciones base de datosJose Musett
 
Gestion de base de datos
Gestion de base de datosGestion de base de datos
Gestion de base de datosjuanmanuel_29
 
Gestion de transacciones
Gestion de transaccionesGestion de transacciones
Gestion de transaccionesPatricia Flores
 
Resumen sistemas soporte basados informacion
Resumen sistemas soporte basados informacionResumen sistemas soporte basados informacion
Resumen sistemas soporte basados informacionMariaCabrera610228
 

Similar a control de concurrencia (20)

RECICLAJE
RECICLAJERECICLAJE
RECICLAJE
 
trabajo 5
trabajo 5trabajo 5
trabajo 5
 
Transaccion
TransaccionTransaccion
Transaccion
 
Practica- Transacciones y Concurrencia en Oracle y MySQL
Practica- Transacciones y Concurrencia en Oracle y MySQLPractica- Transacciones y Concurrencia en Oracle y MySQL
Practica- Transacciones y Concurrencia en Oracle y MySQL
 
Administración de Transacciones - del tema 1 al 4
Administración de Transacciones - del tema 1 al 4Administración de Transacciones - del tema 1 al 4
Administración de Transacciones - del tema 1 al 4
 
Capítulo 17 ( Introducción a los conceptos y la Teoría sobre el procesamiento...
Capítulo 17 ( Introducción a los conceptos y la Teoría sobre el procesamiento...Capítulo 17 ( Introducción a los conceptos y la Teoría sobre el procesamiento...
Capítulo 17 ( Introducción a los conceptos y la Teoría sobre el procesamiento...
 
Abd clase 5 y 6
Abd clase 5 y 6Abd clase 5 y 6
Abd clase 5 y 6
 
Transacciones.pptx julio
Transacciones.pptx julioTransacciones.pptx julio
Transacciones.pptx julio
 
Transacciones.pptx julio
Transacciones.pptx julioTransacciones.pptx julio
Transacciones.pptx julio
 
Gestion de transacciones "Investigación"
Gestion de transacciones "Investigación"Gestion de transacciones "Investigación"
Gestion de transacciones "Investigación"
 
Concurrencia y serialización final 2
Concurrencia y serialización final 2Concurrencia y serialización final 2
Concurrencia y serialización final 2
 
transaction-management
transaction-managementtransaction-management
transaction-management
 
Transacciones
TransaccionesTransacciones
Transacciones
 
Transacciones en mysql
Transacciones en mysqlTransacciones en mysql
Transacciones en mysql
 
Transacciones base de datos
Transacciones base de datosTransacciones base de datos
Transacciones base de datos
 
Gestion de base de datos
Gestion de base de datosGestion de base de datos
Gestion de base de datos
 
Gestion de transacciones
Gestion de transaccionesGestion de transacciones
Gestion de transacciones
 
Estructuras basicas
Estructuras basicasEstructuras basicas
Estructuras basicas
 
Resumen sistemas soporte basados informacion
Resumen sistemas soporte basados informacionResumen sistemas soporte basados informacion
Resumen sistemas soporte basados informacion
 
TRANSACCIONES
TRANSACCIONESTRANSACCIONES
TRANSACCIONES
 

Más de Jose Guadalupe Couoh Dzul (8)

Desarrollo sustentable unidad 1
Desarrollo sustentable unidad 1Desarrollo sustentable unidad 1
Desarrollo sustentable unidad 1
 
Llaboratorio 6.4.2- reto al enrutamiento inter vlan
Llaboratorio 6.4.2- reto al enrutamiento inter vlanLlaboratorio 6.4.2- reto al enrutamiento inter vlan
Llaboratorio 6.4.2- reto al enrutamiento inter vlan
 
Unidad 2 modelado y descripción del conocimiento
Unidad 2 modelado y descripción del conocimientoUnidad 2 modelado y descripción del conocimiento
Unidad 2 modelado y descripción del conocimiento
 
Ejercicios inventarios
Ejercicios inventariosEjercicios inventarios
Ejercicios inventarios
 
reglaje y holgura de las válvulas
reglaje y holgura de las válvulasreglaje y holgura de las válvulas
reglaje y holgura de las válvulas
 
aplicaciones de la derivada
aplicaciones de la derivadaaplicaciones de la derivada
aplicaciones de la derivada
 
cinematica
cinematicacinematica
cinematica
 
55 introduccion a la quimica
55 introduccion a la quimica55 introduccion a la quimica
55 introduccion a la quimica
 

Último

AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA IIAFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA IIIsauraImbrondone
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMarjorie Burga
 
PLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxPLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxlupitavic
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxYadi Campos
 
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfEjercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfMaritzaRetamozoVera
 
Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxMaritzaRetamozoVera
 
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptxORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptxnandoapperscabanilla
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónLourdes Feria
 
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñoproyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñotapirjackluis
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Carlos Muñoz
 
Estrategias de enseñanza-aprendizaje virtual.pptx
Estrategias de enseñanza-aprendizaje virtual.pptxEstrategias de enseñanza-aprendizaje virtual.pptx
Estrategias de enseñanza-aprendizaje virtual.pptxdkmeza
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADauxsoporte
 
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSOCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSYadi Campos
 
plan de capacitacion docente AIP 2024 clllll.pdf
plan de capacitacion docente  AIP 2024          clllll.pdfplan de capacitacion docente  AIP 2024          clllll.pdf
plan de capacitacion docente AIP 2024 clllll.pdfenelcielosiempre
 
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAJAVIER SOLIS NOYOLA
 
origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioELIASAURELIOCHAVEZCA1
 
plande accion dl aula de innovación pedagogica 2024.pdf
plande accion dl aula de innovación pedagogica 2024.pdfplande accion dl aula de innovación pedagogica 2024.pdf
plande accion dl aula de innovación pedagogica 2024.pdfenelcielosiempre
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...JonathanCovena1
 

Último (20)

AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA IIAFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
 
MAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grandeMAYO 1 PROYECTO día de la madre el amor más grande
MAYO 1 PROYECTO día de la madre el amor más grande
 
PLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxPLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docx
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
 
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfEjercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
 
Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docx
 
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptxORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
 
Medición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptxMedición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptx
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcción
 
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niñoproyecto de mayo inicial 5 añitos aprender es bueno para tu niño
proyecto de mayo inicial 5 añitos aprender es bueno para tu niño
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
 
Estrategias de enseñanza-aprendizaje virtual.pptx
Estrategias de enseñanza-aprendizaje virtual.pptxEstrategias de enseñanza-aprendizaje virtual.pptx
Estrategias de enseñanza-aprendizaje virtual.pptx
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDAD
 
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSOCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
 
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdfTema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
 
plan de capacitacion docente AIP 2024 clllll.pdf
plan de capacitacion docente  AIP 2024          clllll.pdfplan de capacitacion docente  AIP 2024          clllll.pdf
plan de capacitacion docente AIP 2024 clllll.pdf
 
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
 
origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literario
 
plande accion dl aula de innovación pedagogica 2024.pdf
plande accion dl aula de innovación pedagogica 2024.pdfplande accion dl aula de innovación pedagogica 2024.pdf
plande accion dl aula de innovación pedagogica 2024.pdf
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...
 

control de concurrencia

  • 1. 1 BASE DE DATOS DISTRIBUIDAS UNIDAD 4 TRANSACCIONES CONTROL DE CONCURRENCIA
  • 2. 2 Contenido Tabla de contenido INTRODUCCIÓN....................................................................................................................... 3 DEFINICIÓN DE CONCURRENCIA ......................................................................................... 4 PROBLEMAS DE CONCURRENCIA........................................................................................ 4 CONTROL DE CONCURRENCIA EN BASES DE DATOS ..................................................... 7 BLOQUEOS............................................................................................................................... 8 BASADOS EN ESTAMPAS DE TIEMPO................................................................................ 11 PRUEBAS DE VALIDACIÓN OPTIMISTAS............................................................................ 11 DISCIPLINAS DEL INTERBLOQUEO: PREVENCIÓN, DETECCIÓN, ELIMINACIÓN Y RECUPERACIÓN.................................................................................................................... 12 CONCLUSIÓN ......................................................................................................................... 15 REFERENCIAS........................................................................................................................ 15
  • 3. 3 INTRODUCCIÓN Concurrencia se refiere al hecho de que los Sistemas Administradores de Base de Datos permiten que muchas transacciones accedan a una misma Base de Datos a la vez. Cuando existen varios usuarios intentando modificar los datos al mismo tiempo, se necesita establecer algún tipo de control para que dichas modificaciones de un usuario no interfieran en las de los otros, a este sistema se le denomina control de concurrencia. En este informe podremos ver algunos de los problemas que se presentan cuando la concurrencia no se controla y algunos de los mecanismos de bloqueo que nos permiten manejar la concurrencia en las transacciones. De esta manera, los sistemas de control de concurrencia deben garantizar la consistencia de transacciones que se ejecutan de manera concurrente.
  • 4. 4 DEFINICIÓN DE CONCURRENCIA En el campo informático, el termino concurrencia se refiere a la capacidad de los Sistemas de Administración de Base de Datos, de permitir que múltiples procesos sean ejecutados al mismo tiempo, y que también puedan interactuar entre sí. Los procesos concurrentes pueden ser ejecutados realmente de forma simultánea, sólo cuando cada uno es ejecutado en diferentes procesadores. En cambio, la concurrencia es simulada si sólo existe un procesador encargado de ejecutar todos los procesos, simulando la concurrencia, ocupándose de forma alternada de uno y otro proceso a muy pequeños intervalos de tiempo. De esta manera simula que se están ejecutando a la vez. Algunos casos de concurrencia, pueden ser: ● La multiprogramación, ya que el tiempo del procesador es compartido dinámicamente por varios procesos. ● Las aplicaciones estructuradas, donde la programación estructurada se implementa como un conjunto de procesos concurrentes. ● También se tiene que la misma estructura recién mencionada es utilizada en el diseño de los sistemas operativos, los cuales se implementan como un conjunto de procesos. Debido a que los procesos concurrentes en un sistema pueden interactuar entre otros también en ejecución, el número de caminos de ejecución puede ser extremadamente grande, resultando en un comportamiento sumamente complejo. Las dificultades asociadas a la concurrencia han sido pensadas para el desarrollo de lenguajes de programación y conceptos que permitan hacer la concurrencia más manejable. PROBLEMAS DE CONCURRENCIA Existen tres formas en las que una transacción, aunque sea correcta por sí misma, puede producir una respuesta incorrecta si alguna otra transacción interfiere con ella en alguna forma. Consideremos que la transacción que interfiere también puede ser correcta; lo que produce el resultado incorrecto general es el intercalado sin control entre las operaciones de las dos transacciones correctas. Los tres problemas son: ● El problema de la Actualización Perdida ● El problema de la Dependencia No Confirmada ● El problema del Análisis Inconsistente Veamos algunos ejemplos para entender cómo es que los programas pueden interferir con otros. Tomaremos como ejemplo las transacciones de las cuentas de un banco, supongamos que tenemos un programa llamado Depositar, el cual deposita dinero en una cuenta.
  • 5. 5 Procederé Depositar (Cuenta, Monto) begin Start; temp:= Leer (Cuentas [Cuenta]); temp := temp + Monto; Escribir (Cuentas [Cuenta], temp); Commit; end Supongamos que la cuenta 7 tiene un saldo de $1000 y que el cliente 1 deposita $100 en la cuenta 7 en el mismo instante en el que el cliente 2 deposita $100000 en la cuenta 7. Cada uno de los clientes llama al procedimiento Depositar de tal manera que se crea una transacción para realizar su actualización. La ejecución concurrente de éstos depósitos produce una secuencia de lecturas y escrituras en la base de datos, tales como Leer1 (Cuentas [7]) devuelve el valor de $1000 Leer2 (Cuentas [7]) devuelve el valor de $1000 Escribir2 (Cuentas [7], $101000) Commit2 Escribir1 (Cuentas [7], $1100) Commit1 El resultado de esta ejecución es que la Cuenta [7] contiene $1100. A pesar que el depósito del cliente 2 concluyó satisfactoriamente, la interferencia con la ejecución de Depósito del cliente 1 causó que el depósito del cliente 2 se pierda. Este fenómeno de actualización perdida ocurre cuando dos transacciones, mientras intentan modificar un dato, ambas leen el valor antiguo del elemento antes que ninguna haya modificado su valor. Otro problema del control de concurrencia se ilustra con el siguiente programa, llamado Imprimir Suma, el cual imprime la suma de los saldos de dos cuentas. Procedure ImprimirSuma (Cuenta1, Cuenta2) begin Start; temp1:= Leer (Cuentas [Cuenta1]); Output (temp1); temp2:= Leer (Cuentas [Cuenta2]); Output (temp2); temp1:= temp1 $+$ temp2; Output (temp1); Commit; end Supongamos que las cuentas 8 y 9 tienen un saldo de $200 cada una, y que el cliente 3 imprime los saldos de las cuentas 8 y 9 (utilizando ImprimirSuma) en el mismo
  • 6. 6 instante en el que el cliente 4 transfiere $100 de la cuenta 8 a la cuenta 9 (utilizando Transferir). La ejecución concurrente de estas dos transacciones puede originar la siguiente ejecución de operaciones de la base de datos. Leer4 (Cuentas [8]) devuelve el valor de $200 Escribir4 (Cuentas [8], $100) Leer3 (Cuentas [8]) devuelve el valor de $100 Leer3 (Cuentas [9]) devuelve el valor de $200 Leer4 (Cuentas [9]) devuelve el valor de $200 Escribir4 (Cuentas [9], $300) Commit4 Commit3 El procedimiento Transferir interfiere con Imprimir Suma en esta ejecución, causando que Imprimir Suma imprima el valor de $300, la cual no es la suma correcta de los saldos de las cuentas 8 y 9. El procedimiento Imprimir Suma no capturó los $100 en tránsito de la cuenta 8 a la cuenta 9. Es importante recalcar que, a pesar de la interferencia, Transferir todavía asigna los valores correctos en la base de datos. Este tipo de interferencia se denomina análisis inconsistente que ocurre cuando una transacción lee un dato antes que otra transacción lo actualice y lea otro dato después que la misma transacción lo ha actualizado. Es decir, la extracción (lectura) de los datos sólo percibe algunos de los resultados de la transacción de actualización. Para conseguir el objetivo del control de concurrencia se utiliza un sincronizador. Un sincronizador es un programa (o una colección de ellos) que controla la ejecución concurrente de las transacciones; su función radica en ordenar las operaciones que forman parte de las transacciones que se requieren ejecutar concurrentemente, de tal manera que la ejecución resultante sea correcta. Usando tres operaciones básicas (ejecución, rechazo y retraso de una operación) el sincronizador puede controlar el orden en el cual las operaciones son ejecutadas por el Administrador de Datos... Cuando éste recibe una operación de la transacción (mediante el TM), usualmente trata de pasarla al DM inmediatamente, si no produce alguna ejecución incorrecta. Si el sincronizador decide que la ejecución de la operación puede producir resultados incorrectos, puede o retrasarla (en caso de que pueda procesar correctamente la operación más adelante) o rechazarla (si no es posible procesarla en el futuro de tal manera que produzca resultados correctos). Por ejemplo, retomemos la ejecución concurrente de dos transacciones Depositar, que depositan $100 y $100,000 en la cuenta 7 Leer1 (Cuentas [7]) devuelve el valor de $1000 Leer2 (Cuentas [7]) devuelve el valor de $1000 Escribir2 (Cuentas [7], $101000) Commit2 Escribir1 (Cuentas [7], $1100) Commit1
  • 7. 7 Para evitar esta ejecución incorrecta, un sincronizador debe decidir rechazar Escribir1 provocando que la transacción T1 sea cancelada. En este caso, el usuario o el Administrador de Transacciones pueden reenviar T1, la cual ahora se puede ejecutar sin interferir con T2. Como otra alternativa, el sincronizador puede prevenir la ejecución anterior retrasando Leer2 hasta que reciba y procese Escribir1 y de esta forma evitando que se rechace Escribir1 más adelante. Por lo tanto, un DBMS que controla la ejecución concurrente de sus transacciones tiene una estructura como la siguiente: CONTROL DE CONCURRENCIA EN BASES DE DATOS El control de transacciones concurrentes en una base de datos brinda un eficiente desempeño del Sistema de Administración de Base de Datos, puesto que permite controlar la ejecución de transacciones que operan en paralelo, accediendo a información compartida y, por lo tanto, interfiriendo potencialmente unas con otras. El objetivo de los métodos de control de concurrencia es garantizar la no inferencia o la propiedad de aislamiento de transacciones que se ejecutan de manera concurrente. Los distintos objetivos atacan el problema garantizando que las transacciones se ejecuten en un plan que sea serializarle, es decir, que el resultado sea equivalente a el resultante de ejecutar un plan en serie. El criterio de clasificación más común de los algoritmos de control de concurrencia es el tipo de primitiva de sincronización. Esto resulta en dos clases: aquellos algoritmos que están basados en acceso mutuamente exclusivo a datos compartidos (bloqueos) y aquellos que intentar ordenar la ejecución de las transacciones de acuerdo a un conjunto de reglas (protocolos). Sin embargo, esas primitivas se pueden usar en algoritmos con dos puntos de vista diferentes: el punto de vista pesimista que considera que muchas transacciones tienen conflictos con otras, o el punto de vista optimista que supone que no se presentan muchos conflictos entre transacciones. Los algoritmos pesimistas sincronizan la ejecución concurrente de las transacciones en su etapa inicial de su ciclo de ejecución. Los algoritmos optimistas retrasan la sincronización de las transacciones hasta su terminación. Ambos grupos de métodos,
  • 8. 8 pesimistas y optimistas, consisten de algoritmos basados en bloqueos y algoritmos basados en marcas de tiempo, entre otros. Los protocolos basados en bloqueos son los más utilizados por los DBMS comerciales. Los demás tienen un alcance más teórico que práctico. BLOQUEOS Un bloqueo en general es cuando una acción que debe ser realizada está esperando a un evento. Para manejar los bloqueos hay distintos acercamientos: prevención, detección, y recuperación. También es necesario considerar factores como que hay sistemas en los que permitir un bloqueo es inaceptable y catastrófico, y sistemas en los que la detección del bloqueo es demasiado costosa. En el caso específico de las bases de datos distribuidas usar bloqueo de recursos, peticiones para probar, establecer o liberar bloqueos requiere mensajes entre los manejadores de transacciones y el calendarizador. Para esto existen dos formas básicas: ● Autónoma: cada nodo es responsable por sus propios bloqueos de recursos. ○ Una transacción sobre un elemento con n replicas requiere 5n mensajes ○ Petición del recurso ○ Aprobación de la petición ○ Mensaje de la transacción ○ Reconocimientos de transacción exitosa ○ Peticiones de liberación de recursos ● Copia Primaria: un nodo primario es responsable para todos los bloqueos de recursos ○ Una transacción sobre un elemento con n copias requiere n mensajes ○ Una petición del recurso ○ Una aprobación de la petición ○ n mensajes de la transacción ○ n reconocimientos de transacción exitosa ○ Una petición de liberación de recurso Podemos definir que dos operaciones entran en conflicto que debe ser resuelto si ambas acceden a la misma data, y una de ellas es de escritura y si fueron realizadas por transacciones distintas.
  • 9. 9 Bloqueo Mortal En sistemas operativos, el bloqueo mutuo (también conocido como interbloqueo, traba mortal, deadlock, abrazo mortal) es el bloqueo permanente de un conjunto de procesos o hilos de ejecución en un sistema concurrente que compiten por recursos del sistema o bien se comunican entre ellos. A diferencia de otros problemas de concurrencia de procesos, no existe una solución general para los interbloqueos. Todos los interbloqueos surgen de necesidades que no pueden ser satisfechas, por parte de dos o más procesos. En la vida real, un ejemplo puede ser el de dos niños que intentan jugar al arco y flecha, uno toma el arco, el otro la flecha. Ninguno puede jugar hasta que alguno libere lo que tomó. En el siguiente ejemplo, dos procesos compiten por dos recursos que necesitan para funcionar, que sólo pueden ser utilizados por un proceso a la vez. El primer proceso obtiene el permiso de utilizar uno de los recursos (adquiere el lock sobre ese recurso). El segundo proceso toma el lock del otro recurso, y luego intenta utilizar el recurso ya utilizado por el primer proceso, por lo tanto queda en espera. Cuando el primer proceso a su vez intenta utilizar el otro recurso, se produce un interbloqueo, donde los dos procesos esperan la liberación del recurso que utiliza el otro proceso. Soluciones El control de concurrencia y detección y manejo de bloqueos es un área de mucho estudio en las bases de datos distribuidas, a pesar de esto no hay ningún algoritmo aceptado para solucionar el problema. Esto se debe a varios factores de los cuales se consideran a los siguientes tres los más determinantes: La data puede estar duplicada en un BDD, por tanto, el manejador de la BDD es responsable de localizar y actualizar la data duplicada. Si un nodo falla o la comunicación con un nodo falla mientras se realiza una actualización, el manejador debe asegurarse de que los efectos se reflejen una vez el nodo se recupere del fallo. La sincronización de transacciones en sitios o nodos múltiples es difícil ya que los nodos no pueden obtener información inmediata de las acciones realizadas en otros nodos concurrentemente. Para el control de bloqueos mutuos no se ha desarrollado ninguna solución viable y la forma más simple y que la mayoría de productos utilizan es la implementación de un tiempo máximo de espera en las peticiones de bloqueos. Causa de estas dificultades más de 20 algoritmos de control de concurrencia se han propuesto en el pasado, y aun así siguen apareciendo nuevos. Una revisión bibliográfica muestra que la mayoría de los algoritmos son variantes del 2PL (2-phase locking o bloqueo de dos fases) o el algoritmo de time-stamp. A continuación se explican estos dos algoritmos básicos.
  • 10. 10 Bloqueo de dos fases (2PL) El algoritmo 2PL utiliza bloqueos de lectura y escritura para prevenir conflictos entre operaciones. Consiste en los siguientes pasos para una transacción T: Obtiene bloqueo de lectura para un elemento L (bloqueo compartido) Obtiene bloqueo de escritura para un elemento E (bloqueo exclusivo) Lee el elemento L Escribe en el elemento E Libera el bloqueo de L Libera el bloqueo de E Las reglas básicas para manejar los bloqueos son: transacciones distintas no pueden tener acceso simultáneamente a un elemento (lectura-escritura o escritura-escritura), y una vez se libere un bloqueo no se puede pedir otro, es decir, los bloqueos de la transacción crecerán mientras no libere ninguno y luego de liberar alguno solo puede liberar los demás. Ejemplos del algoritmo 2PL son La básica en la que se sigue el esquema previamente explicado con la variante que el bloqueo de escritura se pide para todas las copias del elemento. 2PL de copia primaria: en vez de pedir bloqueo para cada copia del elemento de escritura se le pide a una copia primaria o principal. 2PL de voto: se pide a todos los nodos que voten para ver si se concede el bloqueo. 2PL centralizado: el manejador de bloqueos está centralizado y todas las peticiones de bloqueo las maneja el. Antes de implementar un algoritmo de control de concurrencia 2PL es necesario considerar distintos factores como cuál es la unidad atómica más pequeña que el sistema permite bloquear, cual es el intervalo de sincronización para todas las copias de un elemento, donde se deben colocar las tablas con la información de los bloqueos y por último que tan probable es que ocurra por los factores anteriores un bloqueo mutuo. Time-stamp Cada transacción realizada se le asigna un timestamp (literalmente: sello de tiempo) único en el nodo que se originó. Este sello se adjunta a cada petición de lectura y escritura. En el caso de que se dé un conflicto de que dos operaciones de escritura traten de acceder al mismo elemento, este se resuelve serializándolo respecto a los sellos que tengan. A pesar de que existen varios algoritmos de control de concurrencia basados en timestamps, muy pocos son utilizados en aplicaciones comerciales. Esto es en gran parte porque se requiere que el sistema distribuido cuente con un reloj sincronizado que es raro que se tenga implementado.
  • 11. 11 BASADOS EN ESTAMPAS DE TIEMPO A diferencia de los algoritmos basados en candados, los algoritmos basados en estampas de tiempo no pretenden mantener la seriabilidad por exclusión mutua. En lugar de eso, ellos seleccionan un orden de serialización en primera instancia y ejecutan las transacciones de acuerdo a ellas. Para establecer este ordenamiento, el administrador de transacciones le asigna a cada transacción Ti una estampa de tiempo única ts (Ti) cuando ésta inicia. Una estampa de tiempo es un identificador simple que sirve para identificar cada transacción de manera única. Otra propiedad de las estampas de tiempo es la monoticidad, esto es, dos estampas de tiempo generadas por el mismo administrador de transacciones deben ser monotonicamente crecientes. Así, las estampas de tiempo son valores derivados de un dominio totalmente ordenado. Existen varias formas en que las estampas de tiempo se pueden asignar. Un método es usar un contador global monotonicamente creciente. Sin embargo, el mantenimiento de contadores globales es un problema en sistemas distribuidos. Por lo tanto, es preferible que cada nodo asigne de manera autónoma las estampas de tiempos basándose en un contador local. Para obtener la unicidad, cada nodo le agrega al contador su propio identificador. Así, la estampa de tiempo es un par de la forma <contador local, identificador de nodo > Note que el identificador de nodo se agrega en la posición menos significativa, de manera que, éste sirve solo en el caso en que dos nodos diferentes le asignen el mismo contador local a dos transacciones diferentes. El administrador de transacciones asigna también una estampa de tiempo a todas las operaciones solicitadas por una transacción. Más aún, a cada elemento de datos x se le asigna una estampa de tiempo de escritura, wts (x), y una estampa de tiempo de lectura, rts (x); sus valores indican la estampa de tiempo más grande para cualquier lectura y escritura de x, respectivamente. PRUEBAS DE VALIDACIÓN OPTIMISTAS 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 transacción conflictiva que accesa el mismo dato. Las operaciones de lectura, cómputo y escritura de cada transacción se procesan libremente sin actualizar la base de datos corriente. Cada transacción inicialmente hace sus cambios en copias locales de los datos. La fase de validación consiste en verificar si esas actualizaciones conservan la consistencia de la base de datos. Si la respuesta es positiva, los cambios se hacen globales (escritos en la base de datos corriente). De otra manera, la transacción es abortada y tiene que reiniciar Lo que se hace es dejar ejecutar las transacciones y si al terminar se detecta que ha habido conflicto se aborta y se reinicia la transacción.
  • 12. 12 Cada transacción tiene tres fases: Fase de lectura Cuerpo de la transacción donde se copian datos desde la base de datos, copias que pueden ser actualizadas pero sin copiar a la base de datos Fase de validación Se comprueba que no existan conflictos Fase de escritura Si no existen conflictos se instalan lo cambios en la base de datos Conflictos entre operaciones: Dos operaciones están en conflicto entre si cuando, operan sobre los mismos datos, una de las operaciones es de escritura, o cada operación pertenece a diferentes transacciones. DISCIPLINAS DEL INTERBLOQUEO: PREVENCIÓN, DETECCIÓN, ELIMINACIÓN Y RECUPERACIÓN Un interbloqueo se produce cuando dos o más tareas se bloquean entre sí permanentemente teniendo cada tarea un bloqueo en un recurso que las otras tareas intentan bloquear. Un interbloqueo es una condición que se puede dar en cualquier sistema con varios subprocesos, no sólo en un sistema de administración de bases de datos relacionales, y puede producirse para recursos distintos a los bloqueos en objetos de base de datos Por ejemplo:  La transacción A tiene un bloqueo compartido de la fila 1.  La transacción B tiene un bloqueo compartido de la fila 2.  La transacción A ahora solicita un bloqueo exclusivo de la fila 2 y se bloquea hasta que la transacción B finalice y libere el bloqueo compartido que tiene de la fila 2.  La transacción B ahora solicita un bloqueo exclusivo de la fila 1 y se bloquea hasta que la transacción A finalice y libere el bloqueo compartido que tiene de la fila 1.
  • 13. 13 Prevención del interbloqueo. Objetivo: conseguir que sea imposible la aparición de situaciones de interbloqueo. Impedir que se produzca una de las cuatro condiciones necesarias para producirlo: Exclusión mutua, Retención y espera, No expropiación, y Espera circular. Condicionar un sistema para quitar cualquier posibilidad de ocurrencia de interbloqueo. Que no se cumpla una condición necesaria  “Exclusión mutua” y “sin expropiación” no se pueden relajar. Dependen de carácter intrínseco del recurso.  Las otras dos condiciones son más prometedoras. Detección Existen diversos algoritmos para ello en la detección de ciclos en el grafo de esperas, entre ellos: Algoritmo1: comprueba la existencia de ciclos mediante la eliminación de nodos terminales. Algoritmo2: comprueba posibles ciclos desde la última transacción bloqueada y marcando los nodos por lo que pasa. Si pasa dos veces por el mismo nodo a detectado un ciclo. Recuperación de Interbloqueo. Limpiar un sistema de interbloqueos, una vez que fueron detectados. Cuando se ha detectado que existe un interbloqueo, podemos actuar de varias formas. Una posibilidad es informar al operador que ha ocurrido un interbloqueo y dejar que el operador se ocupe de él manualmente. La otra posibilidad es dejar que el sistema se recupere automáticamente del interbloqueo. Dentro de esta recuperación automática tenemos dos opciones para romper el interbloqueo: Una consiste en abortar uno o más procesos hasta romper la espera circular, y la segunda es apropiar algunos recursos de uno o más de los procesos bloqueados. Eliminar interbloqueos. Para eliminar interbloqueos abortando un proceso, tenemos dos métodos; en ambos, el sistema recupera todos los recursos asignados a los procesos terminados.
  • 14. 14 Abortar todos los procesos interbloqueos. Esta es una de las soluciones más comunes, adoptada por Sistemas Operativos. Este método romperá definitivamente el ciclo de interbloqueo pero con un costo muy elevado, ya que estos procesos efectuaron cálculos durante mucho tiempo y habrá que descartar los resultados de estos cálculos parciales, para quizá tener que volver a calcularlos más tarde. Abortar un proceso en cada ocasión hasta eliminar el ciclo de interbloqueo. El orden en que se seleccionan los procesos para abortarlos debe basarse en algún criterio de costo mínimo. Después de cada aborto, debe solicitarse de nuevo el algoritmo de detección, para ver si todavía existe el interbloqueo. Este método cae en mucho tiempo de procesamiento adicional. Si éste se encuentra actualizando un archivo, cortarlo a la mitad de la operación puede ocasionar que el archivo quede en un mal estado. Si se utiliza el método de terminación parcial, entonces, dado un conjunto de procesos bloqueados, debemos determinar cuál proceso o procesos debe terminarse para intentar romper el interbloqueo. Se trata sobre todo de una cuestión económica, debemos abortar los procesos que nos representen el menor costo posible.
  • 15. 15 CONCLUSIÓN El control de concurrencias en las bases de datos no solo permite mejorar la calidad de funcionamiento de las aplicaciones sino que incluso hacen posible que se puedan realizar muchos de los sistemas existentes, lo que sin la existencia de estos controles no sería factibles de realizar. El correcto control de concurrencias permite además mantener información consistente en las bases de datos, así como también evita la aparición de errores en las recuperaciones y o respaldos que se realicen de una base de datos. En este informe pudimos ver los problemas que se presentan cuando la concurrencia no se controla y algunos de los mecanismos de bloqueo que nos permiten manejar la concurrencia en las transacciones. De esta manera, los sistemas de control de concurrencia deben garantizar la consistencia de la información en la Base de Datos. REFERENCIAS http://martinezprosperobdd.blogspot.mx/2012/11/control-de-concurrencia.html http://basesdatosdistribuidas.blogspot.mx/2012/11/control-de-concurrencia.html http://basesdatosdistribuidas.blogspot.mx/2012/11/disciplinas-del-interbloqueo.html http://lira-m.blogspot.mx/2012/11/investigar-las-disciplinas-del.html