Prueba

Solo disponible en BuenasTareas
  • Páginas : 7 (1534 palabras )
  • Descarga(s) : 0
  • Publicado : 29 de diciembre de 2010
Leer documento completo
Vista previa del texto
CONTROL DE CONCURRENCIA
Las bases de datos se utilizan en entornos multi-usuario, en los que muchos clientes están utilizando la misma aplicación. Cada una de esas aplicaciones enviará consultas al gestor, y normalmente cada hilo de ejecución será una transacción diferente.
En la mayoría de los sistemas operativos actuales, las diferentes tareas o hilos se ejecutan de forma intercalada. Esdecir, el sistema operativo decide por su cuenta cuando suspender una de las tareas y darle un poco de tiempo de ejecución a otra. Si hay tareas simultáneas o concurrentes sobre la misma base de datos, esta intercalación puede resultar en que las lecturas y escrituras de las diferentes tareas o aplicaciones en el medio físico se realicen en cualquier orden y secuencia.
El acceso simultáneo descritopuede dar como resultados información inconsistente o simplemente incorrecta, dependiendo de la mala o buena suerte que tengamos en la intercalación de las lecturas y escrituras simultáneas. Esta problemática ha llevado a diseñar e implementar diferentes estrategias de control de concurrencia, que se encargan de evitar todos esos problemas, de modo que los desarrolladores de las aplicacionespueden “olvidarse” de ellos al escribir su código.
Por ejemplo, si tenemos una tabla que incluye lo siguiente:
PEDIDO(id, num-cliente, id-prod, cantidad, precio)
PRODUCTO(id-prod, nombre, ..., stock)
Pueden ocurrir diferentes problemas relacionados con la escritura simultánea con otras escrituras o lecturas, incluyendo los siguientes:
1. Dos sentencias UPDATE que actualicen un mismoproducto decrementando el stock del mismo en una unidad podrían terminar en que una de ellas no se realizase. Si pensamos en un UPDATE como una secuencia de una lectura y una escritura, puede que ambos UPDATE hagan la lectura, por ejemplo, de un stock de 10, y después las escrituras, decrementan ese dato, quedando el resultado en 9, mientras que lo correcto era un resultado de 8.
2. Supongamos unasentencia que primero comprueba que hay stock del producto P, y después inserta un nuevo PEDIDO de diez unidades del producto P, que tiene un stock de 10, seguido de un UPDATE al stock por esa cantidad. Puede que otra inserción de un pedido se ejecute antes del UPDATE pero después de la comprobación, haciendo quedar el stock del producto en negativo.
Existen varias técnicas para controlar laconcurrencia, entre ellas tenemos los Técnicas de bloqueos
TECNICAS DE BLOQUEO EN DOS FASES PARA CONTROLAR LA CONCURRENCIA
Una forma de controlar la concurrencia es hacer que cada transacción deba adquirir un derecho de acceso exclusivo a cada fragmento de datos que necesite modificar. A estos “derechos” se les denomina bloqueos.
Un bloqueo en general es una variable asociada a un elemento de datosque describe el estado de ese elemento respecto a las posibles operaciones que se le puedan aplicar. 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 elcaso 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 2n+3 mensajes
* Una petición del recurso
* Una aprobación de la...
tracking img