7. Control de la concurrencia

Tamaño: px
Comenzar la demostración a partir de la página:

Download "7. Control de la concurrencia"

Transcripción

1 7. Control de la concurrencia Objetivos Conocer la problemática asociada a la concurrencia de transacciones en los sistemas de bases de datos Entender el significado de la serializabilidad y su aplicación al control de la concurrencia Comprender algunas técnicas para el control de la concurrencia empleadas por los sistemas gestores de bases de datos Tema 7. Control de la concurrencia 1 7. Control de la concurrencia Contenidos 1. Introducción y problemas de la concurrencia 2. Serializabilidad 3. Técnicas de control de la concurrencia 4. Granularidad de datos Tema 7. Control de la concurrencia 2

2 7. Control de la concurrencia Bibliografía [CB 2005] Connolly, T.; Begg C.: Sistemas de bases de datos. 4ª Edición. Pearson Educación. Addison Wesley. (Cap. 20) [EN 2002] Elmasri, R.; Navathe, S.B.: Fundamentos de Sistemas de Bases de Datos. 3ª Edición. Addison-Wesley. (Cap. 19 y 20) [EN 1997] Elmasri, R.; Navathe, S.B.: Sistemas de bases de datos. Conceptos fundamentales. 2ª Edición. Addison-Wesley Iberoamericana. (Cap. 17 y 18) Tema 7. Control de la concurrencia Introducción Los sistemas de bases de datos, según el número de usuarios que pueden utilizarlos de forma concurrente, se clasifican en sistemas monousuario y multiusuario Varios usuarios pueden usar un mismo equipo a la vez gracias a la multiprogramación: el computador puede procesar al mismo tiempo varias transacciones Si el equipo tiene varias CPU, es posible el procesamiento simultáneo (paralelo) de transacciones Si sólo hay una CPU, el SO de multiprogramación reparte el tiempo de CPU entre las transacciones: ejecución concurrente intercalada modelo que supondremos Tema 7. Control de la concurrencia 4

3 7.1 Introducción Varias transacciones introducidas por usuarios, que se ejecutan de manera concurrente, pueden leer/modificar los mismos elementos almacenados en la base de datos Razones para permitir la concurrencia: Aumentar la productividad: número de transacciones ejecutadas por minuto. Aumentar la utilización de la CPU (menos tiempo ociosa) y Control del disco. Reducir el tiempo medio de respuesta de transacciones (las pequeñas no esperan a las grandes ). Tema 7. Control de la concurrencia y problemas de la concurrencia Por qué es necesario el control de la concurrencia?... porque pueden surgir problemas si las transacciones concurrentes se ejecutan de manera no controlada Ejemplo sencillo: sistema de bases de datos que permite hacer y anular reservas de plazas en vuelos de diferentes compañías aéreas. Se almacena un registro por cada vuelo, que incluye, entre otras cosas, el número de asientos reservados en el vuelo Sean dos transacciones T1 y T2 concurrentes: T1 transfiere N reservas realizadas en un vuelo X a otro vuelo Y T2 reserva M plazas en el vuelo X Tema 7. Control de la concurrencia 6

4 7.1 y problemas de la concurrencia Problemas potenciales provocados por la concurrencia Transacción T1 X:= X-N; Y:=Y+N; Transacción T2 X:= X+M; Aunque las transacciones pueden ser perfectamente correctas en sí mismas, la ejecución concurrente de T1 y T2 puede producir un resultado incorrecto, debido a la intercalación de sus operaciones, poniendo en cuestión la integridad y la coherencia de la base de datos Tema 7. Control de la concurrencia y problemas de la concurrencia Problemas potenciales provocados por la concurrencia La actualización perdida T1 y T2 que acceden a los mismos datos, tienen sus operaciones intercaladas de modo que hacen incorrecto el valor de algún dato T1 X:= X-N; Y:=Y+N; Tema 7. Control de la concurrencia 8 T2 X:= X+M; El elemento X tiene un valor incorrecto porque su actualización por T1 se perdió (se sobreescribió)

5 7.1 y problemas de la concurrencia Problemas potenciales provocados por la concurrencia La actualización temporal (o lectura sucia) T1 actualiza un elemento X de la BD y luego falla, pero antes de que se restaure el valor original de X, T2 tiene acceso al «valor temporal» de X T1 X:= X-N; Tema 7. Control de la concurrencia 9 T2 X:= X+M; T1 falla y debe devolver a X su antiguo valor; pero mientras, T2 ha leído el valor temporal incorrecto de X (dato sucio) 7.1 y problemas de la concurrencia Problemas potenciales provocados por la concurrencia El resumen incorrecto Otra transacción T3 calcula una función agregada de resumen sobre varios registros (suma las plazas reservadas para todos los vuelos), mientras otras transacciones, como T1, actualizan dichos registros: puede que T3 considere unos registros antes de ser actualizados y otros después T1 X:= X-N; Y:=Y+N; T3 suma:=0; leer_elemento(a); suma:= suma+a; suma:= suma+x; suma:= suma+y; T3 lee X después de restar N, pero lee Y antes de sumar N, así que el resultado es un resumen incorrecto (discrepancia de N) Tema 7. Control de la concurrencia 10

6 7.1 y problemas de la concurrencia Problemas potenciales provocados por la concurrencia La lectura no repetible T4 lee un elemento X dos veces y otra transacción, como T1, modifica dicho X entre las dos lecturas: T4 recibe diferentes valores para el mismo elemento T1 X:= X-N; T4 T4 lee X antes de restar N Y:=Y+N; T4 lee X después de restar N Tema 7. Control de la concurrencia Serializabilidad Motivación Objetivo de un protocolo de control de concurrencia: Planificar las transacciones de forma que no ocurran interferencias entre ellas, y así evitar la aparición de los problemas mencionados Solución obvia: no permitir intercalación de operaciones de varias transacciones T1 T2 X:= X-N; Y:=Y+N; X:= X+M; T1 X:= X-N; Y:=Y+N; T2 X:= X+M; Planificación A Planificación B Tema 7. Control de la concurrencia 12

7 7.2 Serializabilidad Motivación Pero el objetivo de un SGBD multiusuario también es maximizar el grado de concurrencia del sistema Si se permite la intercalación de operaciones, existen muchos órdenes posibles de ejecución de las transacciones T1 X:= X-N; Y:=Y+N; Planificación C: actualización perdida! T2 X:= X+M; T1 X:= X-N; Y:=Y+N; Planificación D: correcta! Existe algún modo de identificar las ejecuciones que está garantizado que protegen la consistencia de la base de datos? Teoría de la Serializabilidad Tema 7. Control de la concurrencia 13 T2 X:= X+M; 7.2 Serializabilidad Planificación de transacciones Cada transacción comprende una secuencia de operaciones que incluyen acciones de lectura y escritura en la BD, que finaliza con una confirmación (commit) o anulación (rollback) Una planificación P de n transacciones concurrentes T 1, T 2... T n es una secuencia de las operaciones realizadas por dichas transacciones, sujeta a la restricción de que para cada transacción T i que participa en P, sus operaciones aparecen en P en el mismo orden en el que ocurren en T i Tema 7. Control de la concurrencia 14

8 7.2 Serializabilidad Planificación de transacciones Para el control de la concurrencia (y recuperación de fallos) interesa prestar mayor atención a estas operaciones: operación leer_elemento escribir_elemento commit rollback abreviatura Ejemplos de planificaciones de transacciones El subíndice de cada operación indica la transacción que la realiza P A : l 1 (X) ; e 1 (X) ; l 1 (Y) ; e 1 (Y) ; c 1 ; l 2 (X) ; e 2 (X) ; c 2 ; P B : l 2 (X) ; e 2 (X) ; c 2 ; l 1 (X) ; e 1 (X) ; l 1 (Y) ; e 1 (Y) ; c 1 ; P C : l 1 (X) ; l 2 (X) ; e 1 (X) ; l 1 (Y) ; e 2 (X) ; c 2 ; e 1 (Y) ; c 1 ; P D : l 1 (X) ; e 1 (X) ; l 2 (X) ; e 2 (X) ; c 2 ; l 1 (Y) ; e 1 (Y) ; c 1 ; P E : l 1 (X) ; e 1 (X) ; l 2 (X) ; e 2 (X) ; c 2 ; l 1 (Y) ; r 1 ; Tema 7. Control de la concurrencia 15 l e c r 7.2 Serializabilidad Planificación serie Una planificación serie P es aquella en la que las operaciones de cada transacción se ejecutan consecutivamente sin que se intercalen operaciones de otras transacciones P A : l 1 (X) ; e 1 (X) ; l 1 (Y) ; e 1 (Y) ; c 1 ; l 2 (X) ; e 2 (X) ; c 2 ; P B : l 2 (X) ; e 2 (X) ; c 2 ; l 1 (X) ; e 1 (X) ; l 1 (Y) ; e 1 (Y) ; c 1 ; Toda planificación serie es correcta BD consistente Pero no se garantiza que los resultados de todas las ejecuciones en serie de las mismas transacciones sean idénticos Ejemplo: cálculo del interés de una cuenta bancaria antes o después de realizar un ingreso considerable en general, son inaceptables en la práctica (ineficiencia) Tema 7. Control de la concurrencia 16

9 7.2 Serializabilidad Planificación no serie Una planificación no serie P es aquella en la que las operaciones de un conjunto de transacciones concurrentes se ejecutan intercaladas P C : l 1 (X) ; l 2 (X) ; e 1 (X) ; l 1 (Y) ; e 2 (X) ; c 2 ; e 1 (Y) ; c 1 ; P D : l 1 (X) ; e 1 (X) ; l 2 (X) ; e 2 (X) ; c 2 ; l 1 (Y) ; e 1 (Y) ; c 1 ; KO Hemos de determinar qué planificaciones no serie permiten llevar la BD a un estado al que pueda llegarse mediante una ejecución en serie Este es el objetivo de la Serializabilidad Tema 7. Control de la concurrencia Serializabilidad Planificación serializable Una planificación P (no serie) es serializable si es equivalente a alguna planificación serie de las mismas n transacciones Una planificación que no es equivalente a ninguna ejecución en serie, es una planificación no serializable Toda planificación serializable es correcta Produce los mismos resultados que alguna ejecución en serie Dos maneras de definir la equivalencia entre planificaciones: Equivalencia por conflictos Equivalencia de vistas Tema 7. Control de la concurrencia 18

10 7.2 Serializabilidad Equivalencia por conflictos Si dos transacciones únicamente leen un determinado elemento de datos, no entran en conflicto entre sí y el orden de las operaciones no es importante Si hay dos transacciones que leen o escriben elementos de datos independientes, no entran en conflicto entre sí y el orden de las operaciones no es importante Si una de las transacciones escribe un elemento de datos y la otra lee o escribe el mismo elemento, entran en conflicto y el orden de las operaciones sí es importante Tema 7. Control de la concurrencia Serializabilidad Equivalencia por conflictos En una planificación, 2 operaciones están en conflicto si pertenecen a diferentes transacciones, tienen acceso al mismo elemento X, y al menos una de ellas es escribir_elemento(x) Operaciones en conflicto en las planificaciones P C y P D : P C : l 1 (X) ; l 2 (X) ; e 1 (X) ; l 1 (Y) ; e 2 (X) ; c 2 ; e 1 (Y) ; c 1 ; P D : l 1 (X) ; e 1 (X) ; l 2 (X) ; e 2 (X) ; c 2 ; l 1 (Y) ; e 1 (Y) ; c 1 ; Dos planes son equivalentes por conflictos si el orden de cualesquiera dos operaciones en conflicto es el mismo en ambos planes Tema 7. Control de la concurrencia 20

11 7.2 Serializabilidad Planificación serializable por conflictos Una planificación P es serializable por conflictos si equivale por conflictos a alguna planificación serie S Podremos intercambiar cada dos operaciones de P consecutivas de transacciones distintas y sin conflicto, hasta obtener la planificación serie equivalente P D : l 1 (X) ; e 1 (X) ; l 2 (X) ; e 2 (X) ; c 2 ; l 1 (Y) ; e 1 (Y) ; c 1 ; P D1 : l 1 (X) ; e 1 (X) ; l 2 (X) ; e 2 (X) ; l 1 (Y) ; c 2 ; e 1 (Y) ; c 1 ; P D2 : l 1 (X) ; e 1 (X) ; l 2 (X) ; e 2 (X) ; l 1 (Y) ; e 1 (Y) ; c 2 ; c 1 ; P D3 : l 1 (X) ; e 1 (X) ; l 2 (X) ; e 2 (X) ; l 1 (Y) ; e 1 (Y) ; c 1 ; c 2 ; P D4 : l 1 (X) ; e 1 (X) ; l 2 (X) ; l 1 (Y) ; e 2 (X) ; e 1 (Y) ; c 1 ; c 2 ; P D5 : l 1 (X) ; e 1 (X) ; l 2 (X) ; l 1 (Y) ; e 1 (Y) ; e 2 (X) ; c 1 ; c 2 ; P D6 : l 1 (X) ; e 1 (X) ; l 2 (X) ; l 1 (Y) ; e 1 (Y) ; c 1 ; e 2 (X) ; c 2 ; P D7 : l 1 (X) ; e 1 (X) ; l 1 (Y) ; l 2 (X) ; e 1 (Y) ; c 1 ; e 2 (X) ; c 2 ; P D8 : l 1 (X) ; e 1 (X) ; l 1 (Y) ; e 1 (Y) ; l 2 (X) ; c 1 ; e 2 (X) ; c 2 ; P D9 : l 1 (X) ; e 1 (X) ; l 1 (Y) ; e 1 (Y) ; c 1 ; l 2 (X) ; e 2 (X) ; c 2 ; Es una planificación serie! P D es serializable Tema 7. Control de la concurrencia Serializabilidad Detección de la serializabilidad por conflictos Construcción del grafo de precedencia (o de serialización) Es un grafo dirigido G = ( N, A ) N es un conjunto de nodos y A es un conjunto de aristas dirigidas Algoritmo: T Crear un nodo por cada transacción T i en P i Crear una arista T j T k si T k lee el valor de un elemento después de que T j lo haya escrito Crear una arista T j T k si T k escribe el valor de un elemento después de que T j lo haya leído Crear una arista T j T k si T k escribe el valor de un elemento después de que T j lo haya escrito T j T k Tema 7. Control de la concurrencia 22

12 7.2 Serializabilidad Detección de la serializabilidad por conflictos (y 2) Una arista T j T k indica que T j debe aparecer antes que T k en una planificación serie equivalente a P, pues dos operaciones en conflicto aparecen en dicho orden en P Si el grafo contiene un ciclo, P no es serializable por conflictos Un ciclo es una secuencia de aristas C=((T j T k ), (T k T p ),... (T i T j )) Si no hay ciclos en el grafo, P es serializable Es posible obtener una planificación serie S equivalente a P, mediante una ordenación topológica de los nodos T 1 T 2 T 1 T 2 T 1 T 2 T 1 T 2 P A P B P D P C Tema 7. Control de la concurrencia Serializabilidad Ejemplo de planificación no serializable Transacción T1 T1 Transacción T2 leer_elemento(z); T2 leer_elemento(z); Transacción T3 leer_elemento(z); escribir_elemento(z); Planificación E Tema 7. Control de la concurrencia 24 T3 leer_elemento(z); escribir_elemento(z); Y T 1 T 2 Y X T 3 Y,Z Hay dos ciclos: T 1 T 2 T 1 y T 1 T 2 T 3 T 1

13 7.2 Serializabilidad Ejemplo de planificación serializable Transacción T1 Transacción T2 leer_elemento(z); Transacción T3 leer_elemento(z); escribir_elemento(z); T1 T2 leer_elemento(z); T3 leer_elemento(z); escribir_elemento(z); Planificación F T 1 T 2 X,Y Tema 7. Control de la concurrencia 25 Y T 3 Y,Z La planificación serie equivalente es T3 T1 T2 7.2 Serializabilidad Aplicaciones de la serializabilidad Planificador de Tareas del SO Planificación P (ordenamiento de las operaciones) Carga del sistema Momento de introducción de las transacciones Prioridades de los procesos... Es el SO el que distribuye los recursos para los procesos, y determina la intercalación de las operaciones de las transacciones concurrentes (ejecutadas como procesos del SO) Parece, pues, que habría que comprobar si P es serializable una vez ejecutadas las transacciones incluidas en P... Ejecución de Transacciones P serializable? SI OK reintentar NO Cancelar el efecto de P enfoque muy poco práctico!! Es necesario encontrar técnicas que garanticen la serializabilidad, sin tener que verificar a posteriori Tema 7. Control de la concurrencia 26

14 7.3 Técnicas de control de concurrencia Métodos basados en la teoría de la serializabilidad, que definen un conjunto de reglas (o protocolo) tal que... si todas las transacciones las cumplen, o el subsistema de control de concurrencia del SGBD las impone (automáticamente)... se asegura la serializabilidad de toda planificación de transacciones Clasificación Métodos de bloqueo Métodos de marca de tiempo Técnicas de multiversión Métodos optimistas Tema 7. Control de la concurrencia Técnicas de control de concurrencia Métodos de bloqueo Uso de bloqueos para controlar el acceso concurrente a los elementos de datos almacenados en la base de datos Reglas básicas del bloqueo: Bloqueo compartido: si una transacción tiene un bloqueo compartido sobre un elemento de datos, puede leer el elemento, pero no actualizarlo (escribir) Varias transacciones pueden mantener a la vez bloqueos compartidos sobre el mismo elemento Bloqueo exclusivo: si una transacción tiene un bloqueo exclusivo sobre un elemento de datos, puede leer y actualizar (escribir) el elemento Un bloqueo exclusivo proporciona acceso exclusivo al elemento Tema 7. Control de la concurrencia 28

15 7.3 Técnicas de control de concurrencia Métodos de bloqueo Reglas de uso de los bloqueos 1. T debe emitir bloquear_lectura(x) o bloquear_escritura(x) antes de ejecutar una operación leer_elemento(x) 2. T debe emitir bloquear_escritura(x) antes de realizar una operación escribir_elemento(x) en T 3. T debe emitir desbloquear(x) una vez completadas todas las operaciones leer_elemento(x) y escribir_elemento(x) 4. Si T ya posee un bloqueo, compartido o exclusivo, sobre X no emitirá bloquear_lectura(x) ni bloquear_escritura(x) *esta regla puede permitir excepciones: mejora y reducción de bloqueos* 5. T no emitirá desbloquear(x) salvo si posee un bloqueo, compartido o exclusivo, sobre X Tema 7. Control de la concurrencia Técnicas de control de concurrencia Métodos de bloqueo Cuando una transacción T solicita un bloqueo Si el elemento no ha sido ya bloqueado por otra transacción, se le concede el bloqueo Si el elemento sí está bloqueado, el SGBD determina si la solicitud es compatible con el bloqueo existente: Si se pide un bloqueo compartido sobre un elemento que ya tiene un bloqueo compartido, el bloqueo será concedido a T En otro caso, T debe esperar hasta que se libere el bloqueo existente Una transacción que obtiene un bloqueo lo mantiene hasta que lo libera explícitamente o termina (commit o rollback) Sólo cuando se libera un bloqueo exclusivo los efectos de la escritura serán visibles para las demás transacciones Tema 7. Control de la concurrencia 30

16 7.3 Técnicas de control de concurrencia Métodos de bloqueo Algunos sistemas permiten la mejora (o promoción) y la reducción (o degradación) de bloqueos Aumenta el nivel de concurrencia del sistema Si T emitió bloquear_lectura(x), más tarde puede mejorarlo a bloqueo exclusivo emitiendo bloquear_escritura(x) Si T es la única que tiene un bloqueo compartido sobre X, se le concede la solicitud En otro caso, T debe esperar Si T emitió bloquear_escritura(x), más tarde puede reducirlo a un bloqueo compartido emitiendo bloquear_lectura(x) Así permite que otras transacciones lean X Tema 7. Control de la concurrencia Técnicas de control de concurrencia Métodos de bloqueo El uso de bloqueos para la programación de transacciones no garantiza la serializabilidad de las planificaciones Transacción T4 bloquear_lectura(y); desbloquear(y); bloquear_escritura(x); X:=X+Y; desbloquear(x); Transacción T5 bloquear_lectura(x); desbloquear(x); bloquear_escritura(y); Y:=X+Y; desbloquear(y); Valores iniciales: X=20, Y=30 Resultados de las planificaciones serie: T4 T5: X=50, Y=80 T5 T4: X=70, Y=50 Resultado de la planificación G: X=50, Y=50 (No serializable!) T4 T5 bloquear_lectura(y); desbloquear(y); bloquear_lectura(x); desbloquear(x); bloquear_escritura(y); Y:=X+Y; bloquear_escritura(x); X:=X+Y; desbloquear(x); desbloquear(y); Planificación G Tema 7. Control de la concurrencia 32

17 7.3 Técnicas de control de concurrencia Métodos de bloqueo: Bloqueo en dos fases Es necesario seguir un protocolo adicional que indique dónde colocar las operaciones de bloqueo y desbloqueo dentro de las transacciones El más conocido es el Bloqueo en Dos Fases (B2F) Una transacción T sigue el protocolo de bloqueo en dos fases si todas las operaciones de bloqueo preceden a la primera operación de desbloqueo De este modo, podemos ver T dividida en dos fases: Fase de expansión (o crecimiento) T puede adquirir bloqueos T no puede liberar ningún bloqueo Fase de contracción T puede liberar bloqueos existentes T no puede adquirir ningún bloqueo Tema 7. Control de la concurrencia Técnicas de control de concurrencia Bloqueo en dos fases Si el sistema permite mejorar y reducir bloqueos La mejora sólo puede tener lugar en la fase de expansión La reducción sólo puede realizarse en la fase de contracción En el código de T, un bloquear_lectura(x) puede aparecer en la fase de contracción de T sólo si reduce un bloqueo exclusivo a uno compartido Transacción T4 bloquear_lectura(y); bloquear_escritura(x); desbloquear(y); X:=X+Y; desbloquear(x); Transacción T5 bloquear_lectura(x); bloquear_escritura(y); desbloquear(x); Y:=X+Y; desbloquear(y); Tema 7. Control de la concurrencia 34

18 7.3 Técnicas de control de concurrencia Bloqueo en dos fases Si toda transacción de una planificación sigue el protocolo de bloqueo en dos fases, entonces la planificación es serializable Ventaja Ya no es necesario comprobar la serializabilidad de las planificaciones Inconvenientes El B2F puede limitar el grado de concurrencia en un plan Emplear bloqueos puede provocar problemas de... Interbloqueo (bloqueo mortal o abrazo mortal) Bloqueo indefinido (o espera indefinida) Tema 7. Control de la concurrencia Técnicas de control de concurrencia Bloqueo en dos fases conservador o estático Tdebe bloquear todos los elementos a los que tendrá acceso (lectura o escritura) antes de comenzar a ejecutarse Si no es posible bloquear algún elemento, T no bloqueará ninguno y esperará para reintentarlo más tarde Protocolo libre de interbloqueo Bloqueo en dos fases estricto el más utilizado Tno libera ningún bloqueo exclusivo hasta terminar (con COMMIT o ROLLBACK) Ninguna transacción lee o escribe un elemento modificado por T, salvo si T se ha completado planificación estricta Puede sufrir interbloqueo (salvo si se combina con B2F conservador) Bloqueo en dos fases riguroso más restrictivo que el B2F estricto Tno libera ningún bloqueo compartido ni exclusivo hasta terminar (con COMMIT o ROLLBACK) planificación estricta Tema 7. Control de la concurrencia 36

19 7.3 Técnicas de control de concurrencia El problema del interbloqueo Situación en la que cada una de dos (o más) transacciones está esperando a que se libere un bloqueo establecido por la otra transacción T6 bloquear_escritura(x); X:=X-10; bloquear_escritura(y); [ en espera ] Tema 7. Control de la concurrencia 37 T7 bloquear_escritura(y); Y:=Y+100; bloquear_escritura(y); [ en espera ] El SGBD ha de reconocer un interbloqueo y romperlo: Abortar una o más transacciones Se deshacen sus escrituras y se liberan sus bloqueos Así, el resto de transacciones podrá continuar su ejecución Reiniciar automáticamente las transacciones abortadas 7.3 Técnicas de control de concurrencia El problema del interbloqueo Hay 3 técnicas generales para gestionar los interbloqueos Temporizaciones de bloqueos Prevención de interbloqueos Detección de interbloqueos Conviene detectar interbloqueos cuando se sabe que hay poca interferencia entre transacciones, es decir si... Las transacciones son cortas y bloquean pocos elementos, o La carga de transacciones es pequeña En otro caso, conviene usar temporizaciones o técnicas de prevención Es más difícil prevenir que utilizar temporizaciones o que detectarlos y romperlos, por lo que en la práctica los sistemas no suelen emplear las técnicas de prevención Tema 7. Control de la concurrencia 38

20 7.3 Técnicas de control de concurrencia Temporizaciones de bloqueos Una transacción que solicita un bloqueo sólo esperará durante un período de tiempo predefinido por el sistema Si no se concede el bloqueo durante ese tiempo, se producirá un fin de temporización : el SGBD asumirá que la transacción está interbloqueada (aunque puede que no), la abortará y la reiniciará automáticamente Es una solución muy sencilla y práctica Pero puede hacer que sean abortadas y reiniciadas transacciones que en realidad no están en un interbloqueo Tema 7. Control de la concurrencia Técnicas de control de concurrencia Prevención de interbloqueos Ordenar las transacciones usando marcas temporales de transacción MT(T): Identificador único para T Las MT se ordenan según se inician las transacciones La T más antigua tiene la MT(T) menor Sea T j que intenta bloquear el elemento de datos X, pero X ya está bloqueado por T k con un candado en conflicto Algoritmo Esperar - Morir si MT(T j ) < MT(T k ) entonces T j puede esperar si no, se aborta T j (T j muere) y se reinicia después con la misma marca de tiempo Una T j más antigua espera a que termine otra T k más reciente Una T j más reciente que solicita un elemento bloqueado por una T k más antigua, es abortada (muere) y reiniciada Tema 7. Control de la concurrencia 40

21 7.3 Técnicas de control de concurrencia Prevención de interbloqueos Algoritmo Herir - Esperar si MT(T j ) < MT(T k ) entonces se aborta T k (T j hiere a T k ) y si no, se reinicia después con la misma MT T j puede esperar Una T j más reciente espera a que termine una T k más antigua Una T j más antigua que solicita un elemento bloqueado por una T k más reciente, hace que la más reciente sea abortada (es herida) y reiniciada Inconvenientes Ambos algoritmos hacen que sean abortadas y reiniciadas transacciones que podrían provocar un bloqueo mortal, aunque tal cosa nunca ocurriera! En el algoritmo Esperar-Morir, una T j podría abortar y reiniciarse varias veces seguidas si T k más antigua sigue bloqueando el X que T j solicita Tema 7. Control de la concurrencia Técnicas de control de concurrencia Detección de interbloqueos Verificación periódica del estado del sistema está en un bloqueo mortal? Creación de un grafo de espera que muestra las dependencias entre transacciones Crear un nodo por cada transacción en ejecución, etiquetado con el identificador de la transacción, T Si T j espera para bloquear el elemento X, ya bloqueado por T k, crear una arista dirigida desde T j a T k X Cuando T k libera el candado sobre X, borrar la arista correspondiente Si existe un ciclo en el grafo de espera, entonces se ha detectado un interbloqueo entre las transacciones T j T j T k T k Tema 7. Control de la concurrencia 42

22 7.3 Técnicas de control de concurrencia Detección de interbloqueos Pero... cuándo hay que verificar el estado del sistema (ejecutar el algoritmo que genera el grafo de espera)? A intervalos uniformes de tiempo, o A intervalos de tiempo desiguales : Iniciar algoritmo de detección con un tamaño de intervalo inicial Cada vez que no se detecta interbloqueo, incrementar el intervalo Por ejemplo, al doble del anterior Cada vez que se detecta interbloqueo, reducir el intervalo Por ejemplo a la mitad Existirán límites superior e inferior del tamaño del intervalo Tema 7. Control de la concurrencia Técnicas de control de concurrencia Detección de interbloqueos Si el sistema está en un estado de interbloqueo, el SGBD necesita abortar algunas transacciones... Cuáles? Selección de víctimas Es mejor abortar transacciones que lleven poco tiempo en ejecución Es mejor abortar una transacción que haya hecho pocos cambios en la base de datos Es mejor abortar una transacción que todavía debe hacer muchos cambios en la base de datos Puede que el SGBD no conozca esta información Se trata de abortar las transacciones que supongan el mínimo coste Es necesario evitar la inanición Tema 7. Control de la concurrencia 44

23 7.3 Técnicas de control de concurrencia Detección de interbloqueos: el problema de la inanición Una transacción sufre inanición cuando es seleccionada para ser abortada (víctima) sucesivamente: nunca termina su ejecución Es similar al bloqueo indefinido La solución es asignar prioridades más altas a las transacciones abortadas varias veces, para no ser siempre las víctimas Tema 7. Control de la concurrencia Técnicas de control de concurrencia El problema del bloqueo indefinido El protocolo de control de concurrencia nunca selecciona a una transacción que está esperando para establecer un bloqueo, mientras otras transacciones continúan ejecutándose con normalidad Ocurre si el esquema de espera da más prioridad a unas transacciones que a otras esquema de espera injusto Dos algoritmos de prevención de bloqueo indefinido Consiguen un esquema de espera justo El primero que llega, es el primero en ser atendido Las transacciones puede bloquear el elemento X en el orden en que solicitaron su bloqueo Aumento de prioridad en la espera Cuanto más espera T, mayor es su prioridad Cuando T tiene la prioridad más alta de todas, obtiene el bloqueo y continúa su ejecución Tema 7. Control de la concurrencia 46

24 7.4 Granularidad de datos Elementos de bases de datos y granularidad Toda técnica de control de concurrencia supone que la base de datos está constituida por un conjunto de elementos de datos con nombre Normalmente, un elemento de datos será uno de estos: un valor de campo de un registro de la BD un registro de la BD una página (uno o varios bloques de disco) un fichero la BD completa Granularidad = tamaño del elemento de información Granularidad fina elementos de tamaño pequeño Granularidad gruesa elementos grandes Tema 7. Control de la concurrencia Granularidad de datos Elección del tamaño adecuado del elemento de datos En el contexto de los métodos de bloqueo, el tamaño del elemento de datos afecta al grado de concurrencia: tamaño(elemento) Grado de concurrencia Y también... número de elementos en la BD carga de trabajo para la gestión de bloqueos, y espacio ocupado por la información de bloqueo Pero... Cuál es el tamaño adecuado para los elementos? Pues depende de la naturaleza de las transacciones: Si una T representativa accede a pocos registros elegir granularidad de registro Si T accede a muchos registros de un mismo fichero elegir granularidad de página o de fichero Tema 7. Control de la concurrencia 48

25 Aclaración... NIVEL DE ABSTRACCIÓN LÓGICO O CONCEPTUAL: Definición del nivel de aislamiento de cada transacción (por parte del usuario o, por omisión, el propio SGBD) Control explícito de bloqueos (operación LOCK) por parte del usuario, si se permiten niveles de aislamiento inferiores a SERIALIZABLE Estos conceptos se tratan en el anexo de este tema NIVEL DE ABSTRACCIÓN FÍSICO O INTERNO: El SGBD implementa los niveles de aislamiento definidos por el usuario para las transacciones siguiendo una o varias técnicas o protocolos Por ejemplo el SGBD Oracle usa dos: Bloqueos Multiversión Estos conceptos se han estudiado en la teoría de este tema Tema 7. Control de la concurrencia 49 Aspectos de concurrencia en SQL-92 y Oracle SQL-92 Niveles de aislamiento de transacción Oracle Niveles de aislamiento de transacción Técnica multiversión Bloqueos (candados) Tema 7. Control de la concurrencia 50

26 SQL-92 Definición de características de la transacción que se inicia SET TRANSACTION modoacceso aislamiento Modos de acceso READ ONLY Prohíbe actualizaciones READ WRITE (por defecto) Nivel de aislamiento Grado de interferencia que una transacción tolera cuando se ejecuta concurrentemente con otras READ UNCOMMITED READ COMMITED REPEATABLE READ SERIALIZABLE (por defecto) Tema 7. Control de la concurrencia 51 SQL-92 Si alguna transacción se ejecuta en algún nivel menor al SERIALIZABLE, la seriabilidad puede ser incumplida: Nivel de aislamiento Lectura sucia Lectura no repetible Lectura fantasma READ UNCOMMITED Sí Sí Sí READ COMMITED No Sí Sí REPEATABLE READ No No Sí SERIALIZABLE No No No Si el sistema soporta niveles distintos a SERIALIZABLE, debería proporcionar facilidades de control explícito de la concurrencia (sentencias LOCK y UNLOCK ) Tema 7. Control de la concurrencia 52

27 Oracle Características de la transacción SET TRANSACTION {READ ONLY READ WRITE} aislamiento Nivel de aislamiento SERIALIZABLE Si T2 serializable intenta ejecutar una sentencia LMD que actualiza un dato que puede haber sido modificado por T1 no confirmada en el momento de comenzar T2, entonces dicha sentencia LMD falla Una T serializable sólo ve los cambios confirmados en el instante en que se inicia, más los cambios realizados por la propia transacción mediante INSERT, UPDATE, DELETE Nivel de aislamiento READ COMMITED (defecto) Si T2 read-commited intenta ejecutar una sentencia LMD que necesita filas bloqueadas por T1, entonces espera hasta que se liberen los bloqueos de las filas Cada consulta ejecutada por una transacción sólo ve los datos confirmados antes de comenzar la consulta (no la transacción) Tema 7. Control de la concurrencia 53 Oracle Consistencia de lectura Garantiza que el conjunto de datos visto por una sentencia es consistente con respecto del instante en el que comenzó, y que no cambia durante la ejecución de la sentencia Asegura que los lectores no esperan a escritores ni a otros lectores de los mismos datos Asegura que los escritores no esperan a los lectores de los mismos datos Asegura que los escritores sólo esperan a otros escritores si intentan modificar las mismas filas en transacciones concurrentes Tema 7. Control de la concurrencia 54

28 Oracle Implementación de consistencia de lectura Se asemeja a que cada usuario trabaja con una copia privada de la BD ( multiversión) Cuando ocurre una actualización, los valores originales de los datos afectados, se copian en otra zona del disco (segmentos de rollback) Mientras la transacción T que actualiza no se confirma, cualquier usuario que consulte los datos modificados ve los valores originales Los cambios hechos por T sólo quedan permanentes cuando T es confirmada Las sentencias (de otras transacciones) que comienzan después de que T se confirme ya ven los cambios hechos por T Nunca ocurren lecturas sucias Tema 7. Control de la concurrencia 55 Oracle Bloqueos Gestión Automática de los bloqueos Bloqueos exclusivos y compartidos Permiten a otras transacciones leer los datos bloqueados, pero no modificarlos Bloqueos de tabla o de fila (una o más) Los bloqueos sólo se liberan la finalizar la transacción (COMMIT o ROLLBACK) Gestión Manual Se superpone al bloqueo automático Sentencia LOCK TABLE (no existe UNLOCK) Tema 7. Control de la concurrencia 56

14. Control de la concurrencia

14. Control de la concurrencia 14. Control de la concurrencia Objetivos Conocer la problemática asociada a la concurrencia de transacciones en los sistemas de bases de datos Entender el significado de la seriabilidad y su aplicación

Más detalles

4.6.- Integridad: Control de concurrencia.

4.6.- Integridad: Control de concurrencia. 4.6.- Integridad: Control de concurrencia. 4.6.1.- Introducción 4.6.2.- Técnicas de Bloqueo. 4.6.2.1.- Bloqueo (variable cerrojo) Tipos, protocolos Problemas. Interbloqueo Granularidad 4.6.2.2.- Marcas

Más detalles

Gestión de Transacciones: Concurrencia y Recuperación

Gestión de Transacciones: Concurrencia y Recuperación Gestión de Transacciones: Concurrencia y Recuperación Grupo de Ingeniería del Software y Bases de Datos Departamento de Lenguajes y Sistemas Informáticos Universidad de Sevilla noviembre 2011 Objetivos

Más detalles

Resumen Tema 5: Proceso de transacciones

Resumen Tema 5: Proceso de transacciones Resumen Tema 5: Proceso de transacciones Transacción Unidad lógica de procesamiento secuencial compuesta por una o mas acciones que se ejecutan en bloque sobre una BD. Sentencias: Begin/end transaction.

Más detalles

Transacciones, Recuperación y Control de Concurrencia

Transacciones, Recuperación y Control de Concurrencia Transacciones, Recuperación y Control de Concurrencia Transacciones Transacción: colección de operaciones que forman una única unidad lógica de trabajo en una BD Control concurrencia Sistemas multiusuario:

Más detalles

Gestión de Transacciones

Gestión de Transacciones Gestión de Transacciones y su relación con el gestor de concurrencia (planificador) y el gestor de recuperación 1 Sistema Monousuario vs. Multiusuario. concurrencia Transacciones Estado de las transacciones.

Más detalles

Control de Concurrencia. Carlos A. Olarte BDII

Control de Concurrencia. Carlos A. Olarte BDII Carlos A. Olarte ([email protected]) BDII Contenido 1 Introducción 2 Protocolos basados en Bloqueos 3 Protocolos basados en Grafos 4 Protocolos de Marcas temporales 5 Esquemas Multiversión 6 Granularidad

Más detalles

Transacciones. M. Andrea Rodríguez-Tastets. II Semestre Universidad de Concepción,Chile andrea

Transacciones. M. Andrea Rodríguez-Tastets. II Semestre Universidad de Concepción,Chile  andrea Transacciones M. -Tastets Universidad de Concepción,Chile www.inf.udec.cl\ andrea [email protected] II Semestre - 2014 Objetivos de la Unidad Entender el concepto de transacciones. Transacciones Una transacción

Más detalles

Transacción. Introducción a los conceptos del Procesamiento de las Transacciones. Monousuarios vs. Multiusuarios. Pablo Turjanski.

Transacción. Introducción a los conceptos del Procesamiento de las Transacciones. Monousuarios vs. Multiusuarios. Pablo Turjanski. Transacción a los conceptos del Procesamiento de las Transacciones Definición Una transacción es un conjunto de instrucciones que se ejecutan formando una unidad lógica de procesamiento. Una transacción

Más detalles

CAPITULO 6. Control de Concurrencia y Recuperación

CAPITULO 6. Control de Concurrencia y Recuperación CAPITULO 6 Control de Concurrencia y Recuperación 6.1 Protocolos de Bloqueo Un protocolo de bloqueo nace de la necesidad creada cuando una transacción solicita un bloqueo de un modo particular sobre un

Más detalles

cilred.com GESTIÓN DE TRANSACCIONES

cilred.com GESTIÓN DE TRANSACCIONES cilred.com GESTIÓN DE TRANSACCIONES ING. EDUARDO CRUZ ROMERO [email protected] cilred.com GESTIÓN DE TRANSACCIONES En las base de datos existen una serie de operaciones fundamentales tales como la

Más detalles

Conceptos sobre procesamiento de transacciones

Conceptos sobre procesamiento de transacciones Conceptos sobre procesamiento de transacciones Tema 3: Bases de Datos II Contenidos del tema 3 1. Introducción 2. Propiedades deseables en las transacciones. 3. Conceptos de transacciones y sistema. 4.

Más detalles

Asignatura: Administración de Bases de Datos. Pedro P. Alarcón Cavero

Asignatura: Administración de Bases de Datos. Pedro P. Alarcón Cavero Ingeniería Técnica en Informática Escuela Universitaria de Informática Universidad Politécnica de Madrid Asignatura: Administración de Bases de Datos Tema 5: Proceso de Transacciones Pedro P. Alarcón Cavero

Más detalles

Concurrencia y Recuperabilidad

Concurrencia y Recuperabilidad Concurrencia y Recuperabilidad Paradigma Pesimista Lic. Gerardo Rossel 2016 Recuperabilidad Control de Concurrencia Pesimista-Optimista-SQL Serializabilidad Recuperabilidad Control de Concurrencia Pesimista-Optimista-SQL

Más detalles

Control de concurrencia en bases de datos relacionales

Control de concurrencia en bases de datos relacionales OpenStax-CNX module: m18939 1 Control de concurrencia en bases de datos relacionales Miguel-Angel Sicilia This work is produced by OpenStax-CNX and licensed under the Creative Commons Attribution License

Más detalles

CONCURRENCIA, TRANSACCIONES, ACCESOS Y BLOQUEOS

CONCURRENCIA, TRANSACCIONES, ACCESOS Y BLOQUEOS CONCURRENCIA, TRANSACCIONES, ACCESOS Y BLOQUEOS Introducción 3 1. CONTROL DE CONCURRENCIA 3 2. TRANSACCIONES Y ACCESOS 4 3. TRANSACCIONES Y ESTADOS DE LA BASE DE DATOS 5 4. ESTADOS DE LA TRANSACCIÓN 6

Más detalles

Ing. Informática. Catedrático: Lic. Angélica Avalos Cano

Ing. Informática. Catedrático: Lic. Angélica Avalos Cano Ing. Informática Tema: Resumen de trasparencia, Control de transacciones para base de datos distribuidas, Control de concurrencia, Protocolos de bloqueo Presentado Por: María Cristina Cruz Ramírez Darvin

Más detalles

Conceptos sobre procesamiento de transacciones. Tema 3: Bases de Datos II

Conceptos sobre procesamiento de transacciones. Tema 3: Bases de Datos II Conceptos sobre procesamiento de transacciones Tema 3: Bases de Datos II Contenidos del tema 3 1. Introducción 2. Propiedades deseables en las transacciones. 3. Conceptos de transacciones y sistemas. 4.

Más detalles

PROGRAMA ACADÉMICO DE TECNOLOGÍAS DE LA INFORMACIÓN. actividad Transacciones en MySQL. como requerimiento parcial para acreditar la asignatura de

PROGRAMA ACADÉMICO DE TECNOLOGÍAS DE LA INFORMACIÓN. actividad Transacciones en MySQL. como requerimiento parcial para acreditar la asignatura de DEXCELENCIA UNIVERSITARIA, FORTALEZA E MEXICO I Z U C A R D E M ATA M O R O S PROGRAMA ACADÉMICO DE TECNOLOGÍAS DE LA INFORMACIÓN actividad Transacciones en MySQL como requerimiento parcial para acreditar

Más detalles

Tema 6. Transacciones y seguridad

Tema 6. Transacciones y seguridad Tema 6. Transacciones y seguridad Las aplicaciones de bases de datos a gran escala, con bases de datos de gran tamaño y con cientos de usuarios concurrentes, como los sistemas de reservas, los bancos,

Más detalles

Fundamentos de Bases de Datos

Fundamentos de Bases de Datos Fundamentos de Bases de Datos Control de Concurrencia y Recuperación CSI-INCO Fundamentos de Bases de Datos 1 Arquitectura de un DBMS Comunicación con el usuario Gestión de Operaciones Gestión de los Datos

Más detalles

Recuperación de Fallos del Sistema

Recuperación de Fallos del Sistema Recuperación de Fallos del Sistema Competencias específicas Proteger la información almacenada frente a fallos del sistema mediante las técnicas disponibles en los SGBDs. Justificar la necesidad de disponer

Más detalles

15. Recuperación de fallos del sistema

15. Recuperación de fallos del sistema 15. Recuperación de fallos del sistema Objetivos Apreciar la necesidad de establecer un producto fiable, capaz de proteger la información frente a fallos del sistema Identificar los tipos de fallos que

Más detalles

Sistemas operativos. Tema 6: Interbloqueo ( (deadlock)

Sistemas operativos. Tema 6: Interbloqueo ( (deadlock) Sistemas operativos Tema 6: Interbloqueo ( (deadlock) Concurrencia de procesos Conceptos de concurrencia y exclusión mutua. Herramientas de sincronización. n. Comunicación n entre procesos. Interbloqueo.

Más detalles

MVCC: Control de Concurrencia Multiversión sobre. Bases de Datos. Comparación critica de. implementaciones existentes

MVCC: Control de Concurrencia Multiversión sobre. Bases de Datos. Comparación critica de. implementaciones existentes MVCC: Control de Concurrencia Multiversión sobre Bases de Datos. Comparación critica de implementaciones existentes Diaz Ramirez, Rodrigo Marcos Errecart, Rodolfo Emilio INDICE INDICE 1 - INTRODUCCION

Más detalles

Sistemas Operativos Tema 11. Interbloqueo José Miguel Santos C. Rubén García - Alexis Quesada

Sistemas Operativos Tema 11. Interbloqueo José Miguel Santos C. Rubén García - Alexis Quesada Sistemas Operativos Tema 11. Interbloqueo 1998-2008 José Miguel Santos C. Rubén García - Alexis Quesada 1 Contenidos Caracterización del interbloqueo Estrategias de tratamiento del interbloqueo Métodos

Más detalles

Transacciones, Recuperación y Control de Concurrencia

Transacciones, Recuperación y Control de Concurrencia Transacciones, Recuperación y Control de Concurrencia Diseño de Bases de Datos Relacionales Curso 2011/2012 Sergio Ilarri [email protected] Transacciones (I) Transacción Secuencia de operaciones que deben

Más detalles

Recuperación de Bases de Datos

Recuperación de Bases de Datos Recuperación de Bases de Datos M. -Tastets Universidad de Concepción,Chile www.inf.udec.cl\ andrea [email protected] II Semestre - 2012 Concepto de Recuperación La recuperación de fallos a transacciones casi

Más detalles

Transacciones. Carlos A. Olarte BDII

Transacciones. Carlos A. Olarte BDII Carlos A. Olarte ([email protected]) BDII Outline 1 2 Ejecuciones Concurrentes 3 Secuencialidad en Cuanto a Conflictos 4 Secuencialidad en Cuanto a Vistas 5 Recuperabilidad 6 en SQL Transacción Definición

Más detalles

BASES DE DATOS (IG18 Semipresencial) Introducción a las Bases de Datos: Sistemas de Bases de Datos frente a Sistemas de Ficheros

BASES DE DATOS (IG18 Semipresencial) Introducción a las Bases de Datos: Sistemas de Bases de Datos frente a Sistemas de Ficheros Tema 1.b BASES DE DATOS (IG18 Semipresencial) Introducción a las Bases de Datos: Sistemas de Bases de Datos frente a Sistemas de Ficheros Lledó Museros / Ismael Sanz [email protected] / [email protected]

Más detalles

Práctica 4: Estudio del SGBD Oracle 10 Gestión de Transacciones

Práctica 4: Estudio del SGBD Oracle 10 Gestión de Transacciones Práctica 4: Estudio del SGBD Oracle 10 El SGBD Oracle 10 Objetivos estudio de la gestión de transacciones. estudio de las estrategias para la comprobación de la integridad. estudio de las estrategias para

Más detalles

Técnicas de control de concurrencia

Técnicas de control de concurrencia Técnicas de control de concurrencia Bases de datos II: Tema 4 Universitat de València 26/7 BD2-Tema 4: Control de concurrencia (Esther de Ves, Vicente Cerverón) Índice Ordenamiento por marcas de tiempo.

Más detalles

Recuperación de Bases de Datos

Recuperación de Bases de Datos Recuperación de Bases de Datos M. -Tastets Universidad de Concepción,Chile www.inf.udec.cl\ andrea [email protected] II Semestre - 2014 Concepto de Recuperación La recuperación de fallos a transacciones casi

Más detalles

BASES DE DATOS curso 2002/3

BASES DE DATOS curso 2002/3 3º Ingeniero en Informática BASES DE DATOS curso 2002/3 Anexos del tema 14.- Control de la concurrencia Algunas notas interesantes acerca del significado y propósito de los niveles de aislamiento de transacciones

Más detalles

Transacciones en SQL. Bases de Datos

Transacciones en SQL. Bases de Datos Transacciones en SQL Bases de Datos 2017 Conceptos Generales Transacciones Implícitas/Explicitas ISO SQL: cualquier comando SQL al comienzo de una sesión o inmediato posterior al fin de una transacción

Más detalles

Sistemas Operativos (Parte 2)

Sistemas Operativos (Parte 2) Sistemas Operativos (Parte 2) M. en C. Mario Farias-Elinos e-mail: [email protected] web: http://www.ci.ulsa.mx/~elinos Maestría en Tecnologías de Información Contenido Proceso Scheduller Thread Sincronización

Más detalles

Transacciones en SQL. Lic. Gerardo Rossel

Transacciones en SQL. Lic. Gerardo Rossel Transacciones en SQL Lic. Gerardo Rossel 2016 Conceptos Generales Transacciones Implícitas/Explicitas ISO SQL: cualquier comando SQL al comienzo de una sesión o inmediato posterior al fin de una transacción

Más detalles

BASES de DATOS ÁCTIVAS

BASES de DATOS ÁCTIVAS BASES de DATOS ÁCTIVAS Bibliografía Piattini & Díaz (2000). Advanced Database Technology and Design. Capt. 3 Elmasri & Navathe (2000). Fundamentals of DBS, Capt. 23.1 Garcia-Molina, Ullman & Widom 2002.

Más detalles

Procesos Definición y Estados

Procesos Definición y Estados Procesos Definición y Estados Profesorado de Informática CeRP del Suroeste, Uruguay Contenidos Qué es un proceso Estructuras de datos para gestionar procesos API para trabajar con procesos Hilos (threads).

Más detalles

Guía de estudio para el examen. Sean tres atributos A, B y C. Indique, para cada par de transacciones T1 y T2, si se garantiza que A+B+C no cambia.

Guía de estudio para el examen. Sean tres atributos A, B y C. Indique, para cada par de transacciones T1 y T2, si se garantiza que A+B+C no cambia. Guía de estudio para el examen Transacciones Problema 1: Suma Invariante Sean tres atributos A, B y C. Indique, para cada par de transacciones T1 y T2, si se garantiza que A+B+C no cambia. 1) T1 T2 Lock

Más detalles

Bases de Datos Distribuidas. Carlos A. Olarte BDII

Bases de Datos Distribuidas. Carlos A. Olarte BDII Carlos A. Olarte ([email protected]) BDII Contenido 1 Introducción 2 Fragmentación de Datos 3 Transparencia de Red 4 Transacciones Distribuidas 5 Control de Concurrencia Introducción Por que distribuir

Más detalles

Interbloqueos. Módulo 7. Departamento de Informática Facultad de Ingeniería Universidad Nacional de la Patagonia San Juan Bosco

Interbloqueos. Módulo 7. Departamento de Informática Facultad de Ingeniería Universidad Nacional de la Patagonia San Juan Bosco Interbloqueos Módulo 7 Departamento de Informática Facultad de Ingeniería Universidad Nacional de la Patagonia San Juan Bosco Módulo 7: Interbloqueos Modelo de Sistema Caracterización de Interbloqueos

Más detalles

Introducción a los sistemas de bases de datos

Introducción a los sistemas de bases de datos Introducción a los sistemas de bases de datos Bases de datos II: Tema 1 Bases de Datos II: Esther de Ves / Vicente Cerverón - Tema 1 1 Estructura del tema Qué es un sistema SGBD? Por qué utilizar un SGBD?

Más detalles

Acceso coordinado a recursos compartidos

Acceso coordinado a recursos compartidos Programación Concurrente en Linux Acceso coordinado a recursos compartidos Alberto Lafuente, Dep. KAT/ATC de la UPV/EHU, bajo Licencia Creative Commons 1 Contenido 1. Recursos compartidos 2. Mecanismos

Más detalles

GESTION DE TRANSACCIONES

GESTION DE TRANSACCIONES GESTION DE TRANSACCIONES Recuperación ante Fallos Control de Concurrencia Esquema de la Clase Concepto de transacción Propiedades y estados de una transacción Estructura de almacenamiento Acceso a los

Más detalles

CONCEPTOS DE PROCESAMIENTO DE TRANSACCIONES

CONCEPTOS DE PROCESAMIENTO DE TRANSACCIONES Tema 6. CONCEPTOS DE PROCESAMIENTO DE TRANSACCIONES TRANSACCIONES Una transacción es una unidad lógica de trabajo o procesamiento (ejecución de un programa que incluye operaciones de acceso a la base de

Más detalles

Sistema Gestor de Bases de Datos. Un SGBD debe permitir: Manipular la base de datos: realizar consultas, actualizarla, generar informes.

Sistema Gestor de Bases de Datos. Un SGBD debe permitir: Manipular la base de datos: realizar consultas, actualizarla, generar informes. Sistema Gestor de Bases de Datos. Un Sistema Gestor de Bases de Datos (SGBD) o DBMA (DataBase Management System) es una colección de programas cuyo objetivo es servir de interfaz entre la base de datos,

Más detalles

ADMINISTRACIÓN DE BASES DE DATOS. Control de Concurrencia y Recuperación

ADMINISTRACIÓN DE BASES DE DATOS. Control de Concurrencia y Recuperación ADMINISTRACIÓN DE BASES DE DATOS Tema 4 Control de Concurrencia y Recuperación Francisco Ruiz González Departamento de Informática Escuela Superior de Informática Universidad de Castilla-La Mancha Resumen:

Más detalles

Transacciones y concurrencia. Sistemas de persistencia de objetos

Transacciones y concurrencia. Sistemas de persistencia de objetos Transacciones y concurrencia Sistemas de persistencia de objetos Transacción ACID Es la demarcación de una unidad de trabajo JPA permite trabajar con varios API de transacciones JSE JDBC JTA Declarativas

Más detalles

Cliente- Servidor. Bases de Datos Distribuidas

Cliente- Servidor. Bases de Datos Distribuidas 1 2 3 4 Cliente- Servidor La tecnología que se utiliza habitualmente para distribuir datos es la que se conoce como entorno (o arquitectura) cliente/servidor (C/S). Todos los SGBD relacionales del mercado

Más detalles

La Máquina de Acceso Aleatorio (Random Access Machine)

La Máquina de Acceso Aleatorio (Random Access Machine) La Máquina de Acceso Aleatorio (Random Access Machine) Nuestro modelo de cómputo secuencial es la máquina de acceso aleatorio (RAM, Random Access Machine) mostrada en la Figura 2.1, y que consiste de:

Más detalles

Tema 6. Gestión de Interbloqueo

Tema 6. Gestión de Interbloqueo Tema 6. Gestión de Interbloqueo Introducción (I) Protocolo de acceso a recursos compartidos: Solicitud. Utilización. Liberación. El sistema operativo suspende a los procesos cuyas solicitudes no pueden

Más detalles

Manejo de Transacciones

Manejo de Transacciones Bases de Datos Transacciones 1 Manejo de Transacciones Jorge Pérez Rojas Universidad de Talca, II Semestre 2006 Bases de Datos Transacciones 2 Transacciones Hasta ahora el modelo de operación en la BD

Más detalles

Estructura de los sistemas de cómputo

Estructura de los sistemas de cómputo Estructura de los sistemas de cómputo Introducción Elementos básicos de un computador Registro del procesador Ejecución de las instrucciones Interrupciones Hardware de protección Introducción Qué es un

Más detalles

ADMINISTRACIÓN DE BASES DE DATOS PREGUNTAS TEST SON SOLUCIÓN

ADMINISTRACIÓN DE BASES DE DATOS PREGUNTAS TEST SON SOLUCIÓN ADMINISTRACIÓN DE BASES DE DATOS PREGUNTAS TEST SON SOLUCIÓN 1. En el SGBD Oracle. Cuál de las siguientes afirmaciones es correcta? a) Los usuarios con el rol de administrador de la base de datos son SYS,

Más detalles

Test SITR Temas: Planificación, Sincronización, Comunicación entre Procesos, Relojes, Señales, Temporizadores (TestSITR_T4 T9)

Test SITR Temas: Planificación, Sincronización, Comunicación entre Procesos, Relojes, Señales, Temporizadores (TestSITR_T4 T9) Test SITR Temas: Planificación, Sincronización, Comunicación entre Procesos, Relojes, Señales, Temporizadores (TestSITR_T4 T9) Temas: Planificación Sincronización y Comunicación entre Procesos Funciones

Más detalles

FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA. Tema 2. Estructura de un Fichero. Operaciones. Básicas.

FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA. Tema 2. Estructura de un Fichero. Operaciones. Básicas. FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA Tema 2. Estructura de un Fichero. Operaciones Básicas. 1.- Introducción. 2.- Organización: Campos y Registros. 3.- Acceso a la Información.

Más detalles

Control de Concurrencia

Control de Concurrencia Esquema de la clase Conceptos Preliminares Aspectos positivos y negativos de la ejecución concurrente Planificaciones y Secuencialidad Recuperabilidad Esquemas de Conceptos Preliminares Transacción Propiedades

Más detalles

Objetivos. Temario. 1. Sistema de gestión de bases de datos

Objetivos. Temario. 1. Sistema de gestión de bases de datos Objetivos conocer la arquitectura ANSI/SPARC para sistemas de gestión de bases de datos conocer el concepto de independencia de datos en bases de datos y los mecanismos asociados conocer los mecanismos

Más detalles

Sistemas Operativos. Daniel Rúa Madrid

Sistemas Operativos. Daniel Rúa Madrid Sistemas Operativos Daniel Rúa Madrid Qué es? Es un programa que administra el hardware de una computadora. También proporciona las bases para los programas de aplicación y actúa como intermediario entre

Más detalles

Unidad 4 Control de Transacciones

Unidad 4 Control de Transacciones Unidad 4 Control de Transacciones e Instrucción COMMIT. 4.2 Instrucción ROLLBACK. 4.3 Niveles de aislamiento. 4.4 Grados de consistencia. ISC Ing. Felipe Alanís González -ITD- 1 Cada vez que se ejecuta

Más detalles

TEMA 4 PROFESOR: M.C. ALEJANDRO GUTIÉRREZ DÍAZ

TEMA 4 PROFESOR: M.C. ALEJANDRO GUTIÉRREZ DÍAZ 1 1 BASES DE DATOS DISTRIBUIDAS TEMA 4 PROFESOR: M.C. ALEJANDRO GUTIÉRREZ DÍAZ 2 4. MANEJO DE TRANSACCIONES 4.1 Conceptos de Transacciones 4.2 Control de concurrencia 4.3 Serialización de transacciones

Más detalles

Aplicaciones Concurrentes

Aplicaciones Concurrentes PROGRAMACIÓN CONCURRENTE TEMA 6 Aplicaciones Concurrentes ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INFORMÁTICA DEPARTAMENTO DE CIENCIAS DE LA COMPUTACIÓN PROGRAMACIÓN CONCURRENTE Aplicaciones Concurrentes

Más detalles

Contenido Manejo de Concurren en Mysql... 2 Modos de bloqueo InnoDB... 2 InnoDB y AUTOCOMMIT... 3

Contenido Manejo de Concurren en Mysql... 2 Modos de bloqueo InnoDB... 2 InnoDB y AUTOCOMMIT... 3 Manejo de Concurrencia en Mysql Contenido Manejo de Concurren en Mysql... 2 Modos de bloqueo InnoDB... 2 InnoDB y AUTOCOMMIT... 3 InnoDB y TRANSACTION ISOLATION LEVEL... 3 Lecturas consistentes que no

Más detalles

1. Sistema Operativo Unix

1. Sistema Operativo Unix . Sistema Operativo Unix. Introducción al S.O. Unix y su entorno.2 Subsistema de Archivos.3 Subsistema de Procesos.4 Políticas de Gestión de Memoria Dpto. Lenguajes y Sistemas Informáticos. Universidad

Más detalles

Sistemas Operativos. Dr. Wenceslao Palma M.

Sistemas Operativos. Dr. Wenceslao Palma M. Sistemas Operativos Dr. Wenceslao Palma M. www.inf.ucv.cl/~wpalma/so Introducción a los Sistemas Computacionales Un vistazo de alto nivel caracteriza a un sistema computacional

Más detalles

Introducción a las Bases de Datos

Introducción a las Bases de Datos Introducción a las Bases de Datos Organización lógica de los datos Sistemas basados en archivos Concepto intuitivo de base de datos Sistemas gestores de bases de datos Definición Características y ventajas

Más detalles

El ciclo de vida de un sistema de información

El ciclo de vida de un sistema de información El ciclo de vida de un sistema de información 1. Las etapas del proceso de desarrollo de software Planificación Análisis Diseño Implementación Pruebas Instalación / Despliegue Uso y mantenimiento 2. Modelos

Más detalles

Introducción a los Sistemas Operativos S.O.

Introducción a los Sistemas Operativos S.O. Introducción a los Sistemas Operativos S.O. Contenido 1. Conceptos 2. Evolución de los Sistemas Operativos 3. Administración del Entorno de Hardware 1. CONCEPTOS 1.1. Definición de Sistema Operativo Es

Más detalles

Modelamiento y Diseño de Base de Datos

Modelamiento y Diseño de Base de Datos Modelamiento y Diseño de Base de Datos Sentencias complementarias + Disparadores Objetivos: Elaborar sentencias especiales con diferentes usos y componentes. Introducción: Siempre hay tipos de consultas

Más detalles

Administración de Bases de Datos

Administración de Bases de Datos Administración de Bases de Datos Tema 8. Técnicas de Recuperación en SGBD Pedro Pablo Alarcón Cavero Juan Garbajosa Sopeña Departamento O.E.I. Escuela Universitaria de Informática Universidad Politécnica

Más detalles

ENTRADA-SALIDA. 2. Dispositivos de Carácter: Envía o recibe un flujo de caracteres No es direccionable, no tiene operación de búsqueda

ENTRADA-SALIDA. 2. Dispositivos de Carácter: Envía o recibe un flujo de caracteres No es direccionable, no tiene operación de búsqueda Tipos de Dispositivos ENTRADA-SALIDA 1. Dispositivos de Bloque: Almacena información en bloques de tamaño fijo (512b hasta 32Kb) Se puede leer o escribir un bloque en forma independiente 2. Dispositivos

Más detalles

UNIVERSIDAD NACIONAL DEL SUR 1 BAHIA BLANCA DEPARTAMENTO DE CIENCIAS E INGENIERÍA DE LA COMPUTACION

UNIVERSIDAD NACIONAL DEL SUR 1 BAHIA BLANCA DEPARTAMENTO DE CIENCIAS E INGENIERÍA DE LA COMPUTACION UNIVERSIDAD NACIONAL DEL SUR 1 CARRERAS Y PLANES Ingeniería en Sistemas de Computación Plan 2007 Ingeniería en Computación Plan 2011 PROFESOR RESPONSABLE Lic. María Mercedes VITTURINI Profesor Adjunto

Más detalles

Bases de Datos I. Cursada 2008. Clase 7: Recuperación de BD. Introducción a la Seguridad. Introducción a la Seguridad

Bases de Datos I. Cursada 2008. Clase 7: Recuperación de BD. Introducción a la Seguridad. Introducción a la Seguridad Bases de Datos I Cursada 2008 Clase 7: Recuperación de BD Facultad de Ciencias Exactas Universidad Nac. Centro de la Pcia. de Bs. As. 1 Introducción a la Seguridad Una base de datos es: Un conjunto de

Más detalles

5(&83(5$&,Ð1'(&$Ì'$6'(/6,67(0$

5(&83(5$&,Ð1'(&$Ì'$6'(/6,67(0$ 5(&83(5$&,Ð1'(&$Ì'$6'(/6,67(0$ Siempre que se introduce una transacción T en el SGBD para ejecutarla, éste debe asegurarse de... a) que todas las operaciones de T se completen con éxito y su efecto quede

Más detalles

Hilos Secciones Stallings:

Hilos Secciones Stallings: Capítulo 4 Hilos Secciones Stallings: 4.1 4.3 Contenido Procesos e hilos. Hilos a nivel de núcleo y a nivel de usuario. Multiprocesador simétrico (SMP). Micronúcleos. 1 Proceso Unidad de propiedad de los

Más detalles

UNIDAD I. Universidad del Zulia Costa Oriental del Lago. Conceptos Básicos

UNIDAD I. Universidad del Zulia Costa Oriental del Lago. Conceptos Básicos Costa Oriental del Lago UNIDAD I Conceptos Básicos Comandos internos y externos. Estructura básicas: entidad, atributo, base de datos, clave primaria y secundaria, registro y archivo de datos empresas

Más detalles

Capítulo 5. Edición de datos

Capítulo 5. Edición de datos Capítulo 5 Edición de datos ÍNDICE CAPÍTULO 5 Inserción de registros Cláusula INSERT Cláusula REPLACE Modificación de registros Borrado de registros Borrados/Modificaciones e integridad referencial Transacciones

Más detalles

Elementos de Bases de Datos. Serializabilidad en Bases de Datos Distribuidas. Protocolo de Bloqueo de Dos Fases. Protocolo de Compromiso de 2 Fases

Elementos de Bases de Datos. Serializabilidad en Bases de Datos Distribuidas. Protocolo de Bloqueo de Dos Fases. Protocolo de Compromiso de 2 Fases Elementos de Bases de Datos 2do Cuatrimestre de 2004 Elementos de Bases de Datos DptoCiencias e Ingeniería de la Computación Universidad Nacional del Sur Lic María Mercedes Vitturini [mvitturi@csunseduar]

Más detalles

Bases de Datos Paralelas. Carlos A. Olarte BDII

Bases de Datos Paralelas. Carlos A. Olarte BDII Carlos A. Olarte ([email protected]) BDII Contenido 1 Introducción 2 Paralelismo de I/O 3 Paralelismo entre Consultas 4 OPS Introducción Por qué tener bases de datos paralelas? Tipos de arquitecturas:

Más detalles

Nombre del estudiante: Gustavo Antonio González Morales. Nombre del trabajo: Tarea 3. Administración de la Memoria.

Nombre del estudiante: Gustavo Antonio González Morales. Nombre del trabajo: Tarea 3. Administración de la Memoria. Nombre del estudiante: Gustavo Antonio González Morales. Nombre del trabajo: Tarea 3. Administración de la Memoria. Fecha de entrega: Miércoles 15 de Mayo de 2013 Materia: Sistemas Operativos I Carrera:

Más detalles

Sistema Operativo. Repaso de Estructura de Computadores. Componentes Hardware. Elementos Básicos

Sistema Operativo. Repaso de Estructura de Computadores. Componentes Hardware. Elementos Básicos Sistema Operativo Repaso de Estructura de Computadores Capítulo 1 Explota los recursos hardware de uno o más procesadores Proporciona un conjunto de servicios a los usuarios del sistema Gestiona la memoria

Más detalles