Fundamentos de Bases de Datos

Documentos relacionados
Concurrencia y Recuperabilidad

4.6.- Integridad: Control de concurrencia.

CONTROL DE CONCURRENCIA Y RECUPERACIÓN EN BASES DE DATOS

Transacciones, Recuperación y Control de Concurrencia

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

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

Transacciones. Carlos A. Olarte BDII

TRANSACCIONES DISTRIBUIDAS

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

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

Tema 6. Transacciones y seguridad

Manejo de Transacciones

Bases de Datos 2. Teórico

CAPITULO 6. Control de Concurrencia y Recuperación

Recuperación de Fallos del Sistema

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

UNIDAD 1: CONCEPTOS BA SICOS DE BASE DE DATOS

Diseño de Bases de Datos

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

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

GESTION DE TRANSACCIONES

El Sistema Gestor de Base de Datos (DBMS)

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

Bases de Datos Distribuidas. Carlos A. Olarte BDII

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

BASES DE DATOS curso 2002/3

_áw. Transacciones Distribuidas. Bibliografía. Motivación. Motivación. Introducción. Introducción. Transferencia entre dos cuentas bancarias.

Formato para prácticas de laboratorio

Transacciones y concurrencia. Sistemas de persistencia de objetos

SISTEMAS DE RECUPERACIÓN

Conceptos básicos de bases de datos

APUNTES SOBRE PROCESOS Y DEADLOCK CONCEPTO DE PROCESO 1

Metodología para implantación de AZDigital

15. Recuperación de fallos del sistema

BASES DE DATOS TEMA 5 RECUPERACIÓN DE FALLAS

Controles en Base de Datos

Universidad Nacional del Sur Departamento de Ciencias e Ingeniería de la Computación Elementos de Bases de Datos 2do. Cuatrimestre de 2004

Aplicaciones Concurrentes

Capítulo 5. Edición de datos

Sistemas Operativos. Curso 2014 Estructura de los sistemas operativos

PROGRAMA ACADÉMICO DE TECNOLOGÍAS DE LA INFORMACIÓN MANUAL SINTAXIS DE LOS COMANDOS PARA UNA TRANSACCION BASES DE DATOS PARA APLICACIONES

Sistemas Distribuidos. Bibliografía: Introducción a los Sistemas de Bases de Datos Date, C.J.

Procedimientos de recuperación

Mecanismos de Recuperación

RECUPERACIÓN ANTE FALLAS EN BASES DE DATOS

Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria

Sistemas Operativos. Dr. Luis Gerardo de la Fraga. Departamento de Computación Cinvestav

LENGUAJES DE DEFINICIÓN Y MODIFICACIÓN DE DATOS SQL 60h

Herramientas Informáticas I Software: Sistemas Operativos

Afinación y Rendimiento de Bases de Datos

CONCEPTOS DE PROCESAMIENTO DE TRANSACCIONES

TEMA 3. CONCEPTOS FUNDAMENTALES DEL NIVEL DEL SISTEMA OPERATIVO. Definición y objetivos de un S.O

18 y 19 Sistemas de Archivos Distribuidos y Tarea 05

PROCEDIMIENTOS DEL NOC RESPALDO Y RECUPERACION DE DATOS

Sincronización en base a relojes. relojes

Recuperación de Bases de Datos

SISTEMAS DE ARCHIVOS DISTRIBUIDOS

Threads, SMP y Microkernels. Proceso

Mercedes Granda Departamento de Electrónica y Computadores. Las propiedades de las redes de Petri nos permiten

Sist s em e a m s s O per e ativos o. s Unidad V Entrada Sali l d i a.

PROCESADORES DE LENGUAJE EXAMEN FINAL 8-JUNIO-07

Filegroups. Índices y rendimiento (Performance) en el SQL Server. Filegroups (2) Filegroups (3) Páginas. Indices 03/11/2009

Módulo 7 Transacciones Distribuidas

Introducción a las Bases de Datos

FUNDAMENTOS DE BASES DE DATOS. Examen Diciembre SOLUCION

Introducción Definición de base de datos Conceptos básicos Sistema de Gestión de Base de Datos (SGBD) Conclusiones

Control de Concurrencia

Mecanismos de Recuperación

Unidad 8. Bases de Datos en el Modelo Cliente Servidor

TEMA 4. PROCESO UNIFICADO

Problemas Fundamentales. Amenazas a la Seguridad de la Base de Datos. Diseño o de Alto Nivel. en las Bases de Datos. Índice. Seguridad Completa

Notación Asintótica 2

Arquitectura de Computadores II Clase #7

Administración de Bases de Datos

Sistemas de Operación II

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

Sistemas operativos. Tema 10: Sistemas de ficheros

Segundo Parcial de Fundamentos de Bases de Datos. Noviembre 2016

TÍTULO: BASES DE DATOS Disponibilidad Objetivos 5 Definicion de una base de datos 9 Datos de nomina (tabla) 9 Esquema de bases de datos (mapa

República Bolivariana de Venezuela Ministerio Popular de Educación y Deportes UNEFA Cátedra: Base de Datos Unidad I. Introducción

Bases de Datos / Elementos de Bases de Datos Que es un Stored Procedure? Stored Procedures: Ventajas

Procesamiento de transacciones Fernando Berzal,

5. RECUPERACIÓN DE FALLAS

GRADO EN INGENIERÍA INFORMÁTICA

Procesamiento de Transacciones

M. C. Felipe Santiago Espinosa

Algoritmos. Medios de expresión de un algoritmo. Diagrama de flujo

Diseño de compiladores. Organización de memoria. Organización de memoria. Organización de memoria. Zona de código 04/05/2014 ORGANIZACIÓN DE MEMORIA

Bases Formales de la Computación

OPTIMIZACIÓN DE CÓDIGO

Verificación. Taller de Programación

Soluciones de Replicación en PostgreSQL 9.1

Tema 3 SUBRUTINAS. Estructura de Computadores OCW_2015 Nekane Azkona Estefanía

Módulo 6 Sistemas de Archivos en Sistemas Distribuidos y Nombres

Integridad Transaccional

Definición de Memoria

Gestión de Entrada-salida

Capítulo 1. Sistemas de Asignación Contigua Basados en Particiones

Diagramas De Casos De Uso

Durabilidad diferida de transacciones y mejoras en gestión de bloqueos para tareas administrativas en SQL Server 2014

Transcripción:

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 CSI-INCO Fundamentos de Bases de Datos 2

Control de concurrencia Transacciones Operaciones complejas que se ven como una sola Concurrencia Qué debe considerar el manejador para que varias transacciones se ejecuten simultáneamente y produzcan resultados correctos en la base? CSI-INCO Fundamentos de Bases de Datos 3

Recuperación Estrategias de recuperación Mecanismos que suelen implementar los manejadores para recuperar los datos frente a fallas del sistema. CSI-INCO Fundamentos de Bases de Datos 4

Control de Concurrencia y Recuperación Referencias [E-N 19, 20, 21 ] CSI-INCO Fundamentos de Bases de Datos 5

Control de Concurrencia Sobre una BD se podrían ejecutar muchos procesos concurrentemente sobre exactamente los mismos datos. Estos procesos podrían estar interfiriendo unos con otros. De qué forma? Tiempo T1 read(x); X:=X-N; write(x); read(y); Y:=Y+N; write(y); CSI-INCO Fundamentos de Bases de Datos 6 T2 read(x); X:=X+M; write(x); X queda con un valor incorrecto! Actualización Perdida

Control de Concurrencia y Recuperación: Temario Control de concurrencia Estudio de un modelo formal y de los principios básicos de las técnicas que debe implementar el manejador para garantizar la consistencia de la base en la situación de modificaciones concurrentes. Transacción Seriabilidad y Recuperabilidad Protocolos de Control de Concurrencia Mecanismos de Recuperación Para asegurar un estado consistente frente a una falla: Por ejemplo, de hardware o del software de base, de la propia ejecución (por ejemplo, división por cero). CSI-INCO Fundamentos de Bases de Datos 7

Control de Concurrencia Control de concurrencia es la coordinación de procesos concurrentes que operan sobre datos compartidos y que podrían interferir entre ellos. CSI-INCO Fundamentos de Bases de Datos 8

Transacción A cada uno de los procesos concurrentes que se ejecuta sobre datos compartidos, se le llama Transacción si cumple las propiedades ACID: Atomicidad (Atomicity): desde el punto de vista del resultado, o se ejecuta totalmente, o no se ejecuta. Consistencia (Consistency preservation): siempre lleva a la base de un estado consistente a otro estado consistente. Aislamiento (Isolation): una transacción no debe interferir con otra. Durabilidad (Durability): los cambios de una transacción confirmada deben ser permanentes en la base. CSI-INCO Fundamentos de Bases de Datos 9

Transacciones Para garantizar ACID, las transacciones tiene que pasar por determinados estados: Inicio Read, Write Activa Fin Trans Abort Parcialmente Confirmada Abort Commit Confirmada Falla Completada CSI-INCO Fundamentos de Bases de Datos 10

Control de Concurrencia: Definiciones y Notación. Operación. Para el control de concurrencia solo interesan read i (X),r i (X): la transacción i lee el ítem X de la base. write i (X),w i (X): la transacción i escribe el ítem X de la base. commit i,c i : la transacción i confirma que todas sus modificaciones deben ser permanentes en la base. abort i,a i : la transacción i indica que ninguna de sus modificaciones deben ser permanentes en la base. CSI-INCO Fundamentos de Bases de Datos 11

Control de Concurrencia: Definiciones y Notación. Rollback. Es la acción de recuperar el estado anterior de la base frente a un abort de una transacción. CSI-INCO Fundamentos de Bases de Datos 12

El Manejador de Transacciones. T1 read(x); write(x); read(y); write(y); abort; T2 read(x); write(x); commit; TRANSACTION MANAGER T 1 :r 1 (x),w 1 (x),r 1 (y),w 1 (y),a 1 T 2 :r 2 (x),w 2 (x),c 2 H: r 1 (x),w 1 (x), r 2 (x), r 1 (y), w 2 (x), w 1 (y),a 1,a 2 CSI-INCO Fundamentos de Bases de Datos 13

El Manejador de Transacciones (Scheduler o Transaction Manager) Se encarga de la administración de las transacciones en la Base de Datos. Para eso recibe las instrucciones que los programas pretenden ejecutar y se toma la libertad de reordenarlas, sin cambiar nunca el orden relativo de los Read y Write. Puede llegar a agregar instrucciones (nunca R/W) por su cuenta. Puede llegar a demorar la ejecución de las instrucciones. Hace lo que necesite para implementar ACID hasta donde pueda. CSI-INCO Fundamentos de Bases de Datos 14

Control de Concurrencia: Definiciones y Notación. Historia. Dado un conjunto de transacciones se le llama historia o schedule a una ordenación de todas las operaciones que intervienen en las transacciones siempre que estas aparezcan en el mismo orden que en la transacción. EJ: T 1 : r 1 (x),w 1 (x),c 1 ; T 2 : r 2 (x),r 2 (y),w 2 (x),c 2. H 1 : r 1 (x),w 1 (x),c 1, r 2 (x),r 2 (y),w 2 (x),c 2 Historia Serial H 2 : r 2 (x), r 1 (x),w 1 (x), r 2 (y), c 1,w 2 (x), c 2 Historia Entrelazada CSI-INCO Fundamentos de Bases de Datos 15

Control de Concurrencia: Definiciones y Notación. Operaciones en Conflicto. Dos operaciones (r o w) están en conflicto si cumplen a la vez las siguientes condiciones: Pertenecen a distintas transacciones. Acceden al mismo ítem. Una es un write. CSI-INCO Fundamentos de Bases de Datos 16

Control de Concurrencia: Definiciones y Notación. Historia Completa. Es aquella que cumple: tiene todas las operaciones de las transacciones involucradas cualquier par de operaciones de la misma transacción, deben aparecer en la historia en el mismo orden que en la transacción las operaciones en conflicto deben tener su orden de aparición definido en la historia CSI-INCO Fundamentos de Bases de Datos 17

Control de Concurrencia: Definiciones y Notación. T1 lee de T 2 en H si w 2 (X) está antes de r 1 (X) y entre medio: no hay otro w j (X) (que no es abortado antes de r 1 (X)) no está a 2 CSI-INCO Fundamentos de Bases de Datos 18

Historias Seriales y Serializables. Si las transacciones se ejecutaran siempre en forma serial, entonces no habría concurrencia pero los datos siempre serían correctos. Si las historias son entrelazadas, podría suceder que queden datos erróneos que no se puedan corregir o que si una transacción aborta otra también tenga que abortar. EJ: T 1 : r 1 (x),w 1 (x),a 1 ; T 2 : r 2 (x),r 2 (y),w 2 (x),c 2 (o a 2 ). Historia No Recuperable H 1 : r 1 (x),w 1 (x), r 2 (x), r 2 (y), w 2 (x), c 2,a 1 H 2 : r 1 (x),w 1 (x), r 2 (x), r 2 (y), w 2 (x), a 1, a 2 Historia con abortos en cascada CSI-INCO Fundamentos de Bases de Datos 19

Historias Seriales y Serializables. Se necesitan historias entrelazadas pero con comportamiento de seriales. CSI-INCO Fundamentos de Bases de Datos 20

Historias Seriales y Serializables. Historia Serializable. Es aquella que es equivalente a una historia serial con las mismas transacciones. Hay varias nociones de equivalencia (o serializabilidad): Intuitiva. Dos historias son equivalentes si dejan la base en el mismo estado. Problema: difícil de garantizar. Puede suceder de casualidad. Por conflicto. Si tienen todas las operaciones en conflicto en el mismo orden. Por vistas. Si cada Ti lee de las mismas Tj,...Tn, en H y H. CSI-INCO Fundamentos de Bases de Datos 21

Testeo de Seriabilidad por Conflictos: Grafo de Seriabilidad Construcción Grafo de Seriabilidad o Precedencia. 1. Poner un nodo para cada transacción en la historia. 2. Si rj(x) está después de wi(x), entonces hay un arco de Ti a Tj. 3. Si wj(x) está después de ri(x), entonces hay un arco de Ti a Tj. 4. Si wj(x) está después de wi(x), entonces hay un arco de Ti a Tj. Siempre se pone un arco si hay una pareja de operaciones en conflicto, desde la primera transacción a la segunda según el orden de las ops. en conflicto. CSI-INCO Fundamentos de Bases de Datos 22

Teorema de Seriabilidad. Un historia H es serializable si su grafo de seriabilidad es acíclico. [Gray-75] Ejemplo de cómo usarlo: T 1 : r 1 (x), w 1 (x), r 1 (y), w 1 (y); T 2 : r 2 (x), w 2 (x) H 1 : r 1 (x), r 2 (x), w 1 (x), r 1 (y), w 1 (y), w 2 (x) H 2 : r 1 (x), w 1 (x), r 2 (x), w 2 (x), r 1 (y), w 1 (y) Serializable H 1 T 1 T 2 No Serializable H 2 T 1 T 2 CSI-INCO Fundamentos de Bases de Datos 23

Uso de la Seriabilidad El manejador debería garantizar la construcción de historias serializables, y que sean recuperables y que no tengan abortos en cascada. La forma básica de hacer esto, es demorar las operaciones en conflicto con otras anteriores hasta que estas terminen. Hay dos formas básicas de hacer esto: Locking Timestamps Primero hay que caracterizar las transacciones recuperables y sin abortos en cascada. CSI-INCO Fundamentos de Bases de Datos 24

Historias Recuperables Una historia es Recuperable si ninguna transacción confirma hasta que confirmaron todas las transacciones desde las cuales se leyeron ítems. (Los commit s están en el mismo orden que el flujo de datos) CSI-INCO Fundamentos de Bases de Datos 25

Historias que Evitan Abortos en Cascada Una historia Evita Abortos en Cascada si ninguna transacción lee de transacciones no confirmadas. (Los commit s tienen que estar antes de los read s siguientes) CSI-INCO Fundamentos de Bases de Datos 26

Historias Estrictas Una historia es Estricta si ninguna transacción lee o escribe hasta que todas las transacciones que escribieron ese ítem fueron confirmadas. (Los commit s tienen que estar antes de los read s o write s siguientes). CSI-INCO Fundamentos de Bases de Datos 27

Historias Recuperables, que Evitan Abortos en Cascada y Estrictas Ejemplos. T 1 : w 1 (x), w 1 (z), r 1 (y), w 1 (y),c 1 T 2 : r 2 (y), w 2 (y), w 2 (z), c 2 H 1 : r 2 (y), w 2 (y), w 1 (x), w 2 (z), w 1 (z), r 1 (y), w 1 (y), c 1, c 2 H 2 : r 2 (y), w 2 (y), w 1 (x), w 2 (z), w 1 (z), r 1 (y), w 1 (y), c 2, c 1 H 3 : r 2 (y), w 1 (x), w 2 (y), w 2 (z), w 1 (z), c 2, r 1 (y), w 1 (y), c 1 H 4 : r 2 (y), w 1 (x), w 2 (y), w 2 (z), c 2, w 1 (z), r 1 (y), w 1 (y), c 1 CSI-INCO Fundamentos de Bases de Datos 28

Historias Recuperables, que Evitan Abortos en Cascada y Estrictas Historias Recup. EAC Estrictas Serializ. Seriales CSI-INCO Fundamentos de Bases de Datos 29

Lock Binario Se consideran dos operaciones nuevas en una transacción Ti : lock i (X) ( o l i (X)) y unlock i (X) (o u i (X)). Cuando se ejecuta li (X), el DBMS hace que cualquier l j (X) (de otra transacción T j ) no termine hasta que T i ejecute u i (X). El comportamiento es similar a los semáforos utilizados en los sistemas operativos. Ej: T 1 : l 1 (x), r 1 (x), w 1 (x), u 1 (x), l 1 (y), r 1 (y), w 1 (y), u 1 (y) T 2 : l 2 (x),r 2 (x), w 2 (x), u 2 (x) H 1 : l 1 (x), r 1 (x), w 1 (x), u 1 (x), l 2 (x),r 2 (x), w 2 (x), u 2 (x) l 1 (y), r 1 (y), w 1 (y), u 1 (y) H 2 : l 1 (x),r 1 (x), l 2 (x), w 1 (x), u 1 (x), r 2 (x), w 2 (x), u 2 (x) l 1 (y), r 1 (y), w 1 (y), u 1 (y) CSI-INCO Fundamentos de Bases de Datos 30

Lock Binario Lock Binario. Son los anteriores. Un ítem o está bloqueado o desbloqueado. Ventaja: Fácil de implementar. (EN-20) Desventaja: Niega incluso la lectura a otras transacciones, cuando esto no sería necesario. CSI-INCO Fundamentos de Bases de Datos 31

Read/Write Lock Read/Write Lock. Hay tres operaciones a considerar: read_lock i (X) (o rl i (X)), write_lock i (X) (o wl i (X)), unlock i (X) (o u i (X)). Ventaja: Se permite que varias operaciones hagan un rl (pero no un wl) simultáneamente sobre el mismo ítem. Desventaja: Un poco más complicado de implementar. CSI-INCO Fundamentos de Bases de Datos 32

Reglas de Uso de los Lock s Para lock s tipo binario. Antes de que T i ejecute r i (X) (o w i (X)) debe ejecutar l i (X) y luego de r i (X) (o w i (X)) debe ejecutar u i (X). Nunca va a ejecutar l i (X) si ya lo tiene. Para lock s tipo read/write Antes que T i ejecute r i (X), debe ejecutar rl i (X) o wl i (X) y luego de r i (X) debe ejecutar u i (X). Antes que T i ejecute w i (X), debe ejecutar wl i (X) y luego de w i (X) debe ejecutar u i (X). Nunca va a ejecutar algún lock sobre un ítem si ya tiene uno sobre ese ítem. Algunas veces los locks se pueden promover o degradar. CSI-INCO Fundamentos de Bases de Datos 33

Protocolos de Locking Las reglas de uso no alcanzan para garantizar seriabilidad. Ej: H 1 T1 : rl 1 (Y),r 1 (Y), u 1 (Y), wl 1 (X), r 1 (X), w 1 (X), u 1 (X),c 1 T2 : rl 2 (X),r 2 (X), u 2 (X), wl 2 (Y), r 2 (Y), w 2 (Y), u 2 (Y),c 2 H1 : rl 1 (Y), r 1 (Y), u 1 (Y), rl 2 (X), r 2 (X), u 2 (X), wl 2 (Y), r 2 (Y), w 2 (Y), u 2 (Y), wl 1 (X), r 1 (X), w 1 (X), u 1 (X), c 1, c 2 T 1 T 2 CSI-INCO Fundamentos de Bases de Datos 34

Protocolos de Locking La idea de un protocolo de locking es definir un conjunto de reglas de uso de Lock s que sean más fuertes que las anteriores y sí garanticen la seriabilidad. CSI-INCO Fundamentos de Bases de Datos 35

Protocolos de Locking: 2PL En Two Phase Locking (2PL) Hay dos fases en una transacción: EJ: Fase de crecimiento o expansión: se crean lock s Fase de contracción: se liberan los lock s T 1 : rl 1 (Y),r 1 (Y), u 1 (Y), wl 1 (X), r 1 (X), w 1 (X), u 1 (X),c 1 T 1 : rl 1 (Y),r 1 (Y), wl 1 (X), u 1 (Y), r 1 (X), w 1 (X), u 1 (X),c 1 T 2 : rl 2 (X),r 2 (X), u 2 (X), wl 2 (Y), r 2 (Y), w 2 (Y), u 2 (Y),c 2 T 2 : rl 2 (X),r 2 (X), wl 2 (Y), u 2 (X), r 2 (Y), w 2 (Y), u 2 (Y),c 2 CSI-INCO Fundamentos de Bases de Datos 36

Protocolos de Locking: 2PL Básico y Conservador Hay varias versiones de 2PL con ventajas desventajas propias: 2PL Básico: Sólo exige las 2 fases Ventaja: Muy simple de implementar Desventaja: Susceptible a Deadlock 2PL Conservador: Exige que todos los locks se hagan antes del comienzo de la transacción. Ventaja: No susceptible a Deadlock Desventaja: Exige la predeclaración de todos los ítems que se van a leer o grabar (read-set, write-set), lo que no siempre es posible. CSI-INCO Fundamentos de Bases de Datos 37

Protocolos de Locking: 2PL Estricto y Riguroso 2PL Estricto: Exige que no libere ningún write lock hasta después de terminar la transacción. Ventaja: Garantiza historias estrictas. Desventaja: Susceptible a Deadlock 2PL Riguroso: Exige que no libere ningún (read o write) lock hasta después de terminar la transacción. Ventaja: Más simple de Implementar que el estricto Desventaja: Susceptible a Deadlock Hay protocolos viables que no sean suceptibles a Deadlock? Hay otros problemas? CSI-INCO Fundamentos de Bases de Datos 38

Problemas con Locks: Deadlock Dos o más transacciones esperan unas por otras. EJ: T1 : rl 1 (Y),r 1 (Y),wl 1 (X),u 1 (Y),u 1 (X),... T2 : rl 2 (X),r 2 (X),wl 2 (Y),u 2 (X),u 2 (Y),... H 1 H1 : rl 1 (Y),r 1 (Y),rl 2 (X),r 2 (X),wl 1 (X),wl 2 (Y) T 1 T 2 Chequeo: construir grafo de espera Tiene un arco de Ti a T j si T i está tratando de lockear un ítem que T j tiene lockeado. Si tiene ciclos, entonces hay deadlock. CSI-INCO Fundamentos de Bases de Datos 39

Soluciones para Deadlocks Protocolos con prevención de Deadlocks 2PL Conservador: NO Funciona en forma práctica. Basados en TimeStamp: TS(T) es un identificador para cada T que cumple que TS(Ti ) < TS(T j ) si T i empezó antes que T j. Asumiendo que Ti quiere lockear un ítem que T j ya lo tiene. Wait-die: si TS(Ti ) < TS(T j ), entonces T i está autorizada a esperar. Si TS(T j ) < TS(T i ), entonces T i aborta y es recomenzada más tarde con el mismo timestamp. Wound-wait: si TS(Ti ) < TS(T j ), entonces T j aborta y es recomenzada más tarde con el mismo timestamp. De lo contrario, T i espera. Pueden producir abortos y reinicios innecesarios. CSI-INCO Fundamentos de Bases de Datos 40

Soluciones para Deadlocks Detección. Mantener el grafo de espera y si hay deadlock, seleccionar una victima y hacer que aborte. Util para transacciones chicas (que trabajan sobre pocos ítems) por poco tiempo. Si las transacciones son largas y trabajan sobre muchos ítems, se genera mucho overhead. Sería mejor usar prevención. CSI-INCO Fundamentos de Bases de Datos 41

Soluciones para Deadlocks TimeOut. Si una transacción espera por mucho tiempo, el sistema la aborta sin importar si hay deadlock o no. CSI-INCO Fundamentos de Bases de Datos 42

Problemas en Locks: Starvation Una transacción no puede ejecutar ninguna operación por un período indefinido de tiempo. Esto puede suceder por ejemplo, por un mecanismo de selección de víctima equivocado. Soluciones similares a las usadas en SO: FIFO Manejo de prioridades. Wound-wait y Wait-die evitan este problema. CSI-INCO Fundamentos de Bases de Datos 43

Control de Concurrencia Basado Ordenación de TimeStamps Cada transacción T tiene un timestamp TS(T) Cada ítem X, tiene 2 timestamps: Read_TS(X): el timestamp de la transacción más joven que leyó el ítem. (El timestamp más grande). Write_TS(X): el timestamp de la transacción más joven que grabó el ítem. La idea consiste en ejecutar las lecturas y escrituras de acuerdo al orden de los timestamps. Si el orden se viola, entonces se aborta la transacción. CSI-INCO Fundamentos de Bases de Datos 44

Ordenamiento Básico por Timestamp Si T trata de ejecutar un w(x) Si Read_TS(X) > TS(T) o Write_TS(X) > TS(T), T aborta y luego se reinicia con un nuevo TS. (Una transacción más joven hizo una operación en conflicto) Si no, se ejecuta el w(x) y se cambia Write_TS(X) por TS(T). Si T trata de ejecutar un r(x) Si write_ts(x) > TS(T), T aborta y luego se reinicia con un nuevo TS. si no, se ejecuta el r(x) y se calcula el nuevo Read_TS(X) como el máximo de TS(T) y el Read_TS(X) actual. CSI-INCO Fundamentos de Bases de Datos 45

Control de Concurrencia Multiversión Algoritmos anteriores, demoran lecturas en forma innecesaria por locking o por abortos sucesivos de una transacción. Una Solución: Mantener varias versiones de cada ítem y elegir la correcta. Ventaja: Las lecturas no tienen porqué esperar. Desventaja: Se necesita espacio extra para almacenar las versiones de cada ítem. Podría no ser demasiado relevante de acuerdo a los esquemas de recuperación que se utilicen. CSI-INCO Fundamentos de Bases de Datos 46

Control de Concurrencia Multiversión Idea básica: Antes de cualquier modificación a un ítem X, se guarda una versión X i del mismo, generando para cada ítem una sucesión de versiones (X 1, X 2,...X k ). Cada versión está formada por un valor de X, el Read_TS(X) y el Write_TS(X) asociados a ese valor. Hay dos reglas para la seriabilidad: Sea X i la versión de X con máximo Write_TS. w(x): Si T tal que Write_TS(Xi ) TS(T) < Read_TS(X i ), T aborta. En cualquier otro caso se crea X j con Read_TS(X j )= Write_TS(X j )= TS(T). r(x): Se busca Xi tal que Write_TS(X i ) es el mas grande menor o igual que TS(T), se devuelve el valor de X i a T y se asigna a Read_TS(X i ) el máximo de TS(T) y Read_TS(X i ). CSI-INCO Fundamentos de Bases de Datos 47

Consideraciones sobre la Granularidad. Que es un ítem? Un Ítem puede ser: Una tupla (registro) de la una tabla de la base. El valor de un atributo de una tupla. Una tabla entera. Un bloque de disco. La base completa. CSI-INCO Fundamentos de Bases de Datos 48

Consideraciones sobre la Granularidad No es lo mismo trabajar a cualquier nivel de granularidad Cuanto mayor es el grado de granularidad, menor es el nivel de concurrencia permitido. Porque se restringe el acceso a las partes de los objetos. Cuanto menor es el grado de granularidad, mayor es el overhead que se impone en el sistema. Por que hay que llevar el control mayor cantidad de timestamps o locks. Si las transacciones tipo acceden a pocos registros, mejor manejar granularidad baja. Si acceden a muchos de una misma tabla, mejor manejar granularidad alta. CSI-INCO Fundamentos de Bases de Datos 49

Concurrencia en la Inserción y Eliminación. Eliminación: Locking: se lockea en forma exclusiva Timestamp: hay que garantizar que ninguna transacción posterior a la que elimina el registro haya leído o escrito el elemento. Inserción: Locking: Se crea un lock, se inserta un registro y se libera en el momento adecuado según el protocolo. TimeStamp: Se asigna el TS(X) como Write_TS y como Read_TS(X). CSI-INCO Fundamentos de Bases de Datos 50

Inserción y Registros Fantasmas. Una transacción T inserta un registro X T accede a registros según una condicion que X cumple. Si T lockea los registros antes que T inserte X, entonces X se convierte en un registro fantasma porque T no se entera de su existencia a pesar de que es de ínterés para T. Solución: Lockeo sobre índices. [ EN- 20 ] CSI-INCO Fundamentos de Bases de Datos 51