La mayoría de las bases de datos se utilizan en entornos multi-usuario, en los que muchos clientes utilizando la misma aplicación, o muchas aplicaciones.

Slides:



Advertisements
Presentaciones similares
Definición En un sistema de base de datos distribuida, los datos se almacenan en varios computadores. Los computadores de un sistema distribuido se comunican.
Advertisements

CICLO DE VIDA DEL DESARROLLO DE SOFTWARE
Planificación de Monoprocesadores
IBD Clase 18.
Arquitecturas de BD Modelo ANSI/SPARC
UNIX COMP 240.
I.T.E.S.R.C. Romina Tamez Andrea Martínez Ma. De Lourdes Solís
COLEGIO DE BACHILLERES PLANTEL 13 XOCHIMILCO-TEPEPAN MATERIA:TIC EQUIPO:23 PRESENTACION: BASE DE DATOS ALUMNAS: Velazquez Corona Elsa Ponciano Antonio.
Administración de procesos y del procesador.
Muestreo para la inspección por atributos
Tema II Unidad de memoria. 2 Unidad de memoria 2.1 Definiciones y conceptos básicos Localización Capacidad Unidad de transferencia
Windows XP sp3.
Introducción a los Sistemas de Bases de Datos Distribuidos
Johanna Lizeth Rodríguez Lorena Fda. Chávarro Ramos
Introducción a los Conceptos de Bases de Datos Docente: Ing. Marleny Soria Medina.
Transacciones (MySQL). Definición: Conjunto de sentencias que se tratan como una sola. Comienzan con BEGIN/START TRANSACTION; Se puede confirmar (COMMIT)
HILOS Y COMUNICACIÓN ENTRE PROCESOS
TRADUCTOR DE UN PROGRAMA
Transacciones, Recuperación y Control de Concurrencia
Concurrencia: interbloqueo e inanición
UNIDAD II. Manejo de archivos
Deadlocks Abrazo Mortal Bloqueos mutuos
7. Control de la concurrencia
Administración de Bases de Datos
PARTE I  ANDRI GIOVANNI HERNANDEZ CAMPOSECO. ANDRI GIOVANNI HERNANDEZ CAMPOSECO Check point video: Dead Lock:
Técnicas de recuperación de bases de datos
PROGRAMACIÓN PARALELA Tema 4: Metodología de la programación
UNIDAD 3 Conceptos de Sistemas Operativos.
Introducción a las bases de datos
Clase 10: Estructuras de datos y arreglos.
Sistema de archivos Sistemas operativos.
Tema 10.3: Asignación de Espacio No Contiguo. Tema 10.3: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.),
Asignación de Espacio No Contiguo
CONFIDENCIALIDAD Y PSICOLOGÍA CLÍNICA
Administración de Memoria
PostgreSQL: Parte 1 Integrantes: Álvaro Marciales Claudio Torrez.
Aplicación de estructuras de datos
Sebastián Sánchez Prieto
Planificación de Procesos
Planificación y Gestión de procesos
Gestión de Procesos Gestión de Procesos Procesos Planificación CPU
Capítulo 7 Gestión de memoria.
RESTRICCIONES Ing. Carolina Moreno Departamento de Sistemas Facultad de Electrónica y Telecomunicaciones Universidad del Cauca.
Tema VII Memoria Virtual.
Teoría de Sistemas Operativos Sincronización Procesos Departamento de Electrónica 2º Semestre, 2003 Gabriel Astudillo Muñoz
Memoria virtual.
Memoria Principal Memoria de acceso aleatorio. La unidad de memoria y jerarquías de almacenamiento Unidades de Almacenamiento. La unidad de memoria es.
Teoría de Sistemas Operativos Departamento de Electrónica 2º Semestre, 2002 Gabriel Astudillo Muñoz
COLEGIO DE BACHILLERES PLANTEL 13 XOCHIMILCO-TEPEPAN MATERIA:TIC EQUIPO:21 PRESENTACION: BASE DE DATOS ALUMNAS: Adán Millán Sánchez.
Ing. Noretsys Rodríguez. Definición de Conceptos  Falla: Ocurre cuando un programa no se comporta de manera adecuada. Es una propiedad estadística de.
UNIDAD 3 C ONCEPTOS DE S ISTEMAS O PERATIVOS. El ordenador es un sistema programable formado por un conjunto de elementos hardware que necesitan instrucciones.
C ONCURRENCIA Y M ANEJO DE S ESIONES. C ONCURRENCIA Es una propiedad del sistema en el cual muchos calculos se estan ejecutando simultaneamente, y son.
Sistemas de Archivos Sistemas Operativos.  Se debe proporcionar un almacenamiento secundario que respalda a la memoria principal  El Sistema de archivos.
Unidad 2 – Gestión de Procesos
1 FUNDAMENTOS DE BASES DE DATOS SISTEMA GESTOR DE BASES DE DATOS (SGBD) Consiste en una colección de datos interrelacionados y un conjunto de programas.
La estrategia de prevención del interbloqueo consiste, a grandes rasgos, en diseñar un sistema de manera que esté excluida, a priori, la posibilidad de.
INTERRUPCIONES – ABRAZO MORTAL
Microsoft Office Project INTRODUCCIÓN A LA GESTIÓN DE PROYECTOS Microsoft Office Project 2010.
UNIVERSIDAD TECNOLOGICA DE IZUCAR DE MATAMOROS TECNOLOGIAS DE LA INFORMACION Y COMUNICACIÓN BASE DE DATOS PARA APLICACIONES MTRO: GONZALO ROSAS CABRERA.
Transacciones seguras  Concurrencia Ing. Yeberth Martinez Programación II.
MIA - Grupo 5 Unidad 2.

Proceso de desarrollo de Software
Curso: Fundamentos de Computación
Administración de Base de Datos Recuperación Prof Mercy Ospina Torres
Gestión de Memoria – Parte 2
Planificación de CPU Conceptos Básicos Criterios de Planificación Algoritmos de Planificación Planificación con Múltiples Procesadores Planificación Real-Time.
Bloqueos Mutuos Modelo del Sistema Caracterización de Deadlock Métodos de manejo de Deadlocks Prevención de Deadlocks Evitación de Deadlocks Detección.
Katty Evangelina Hipólito Chi.   Aunque cada maquina tiene un lenguaje ensamblador distinto, el proceso de ensamblador tiene suficiente similitudes.
1 Tema 16: Servidores de Archivos y otros Conceptos Sistemas Operativos (Tema 18 en apuntes prof. Rovayo)
Transcripción de la presentación:

La mayoría de las bases de datos se utilizan en entornos multi-usuario, en los que muchos clientes utilizando la misma aplicación, o muchas aplicaciones cada una con uno o muchos clientes acceden a la misma base de datos..  Técnicas del bloqueo..  Bloqueo en dos fases  Interbloqueo  Granularidad  Ordenamiento por marcas de tiempo..  Ordenamiento total / Ordenamiento parcial  Regla de Thomas  Técnicas multiversión  Técnicas de Validación

 Granularidad de elementos de datos  Bloqueo de granularidad múltiple  Usos de bloqueo para control de concurrencia en índice  Otras cuestiones sobre el control de concurrencias.

 Las técnicas más empleadas para controlar el acceso concurrente de las transacciones se basan en el concepto de bloquear elementos de datos. Un bloqueo corresponde a una variable asociada al gránulo que describe las operaciones que se pueden realizar sobre él. Dado que dos operaciones de transacciones diferentes sobre el mismo gránulo que no sean permutables pueden provocar violaciones en el orden de serialización, pueden prevenirse las violaciones bloqueando los accesos a dicho gránulo

 Matriz binaria de compatibilidad:: Es una matriz binaria que describe las operaciones compatibles ( 1 = sí,, 0 = no).. C leer escribir leer 1 0 escribir 0 0  Se introducen operaciones adicionales en las transacciones: bloquear(g, M): indica al planificador el comienzo de una operación o conjunto de ellas de modo definido por M sobre el gránulo g. desbloquear(g): indica al planificador el final de las operaciones realizadas por la transacción correspondiente.  Un modo de operación M es un vector binario que indica las operaciones que una T desea bloquear sobre el gránulo g.. p.e., si leer o escribir modo M=(1 0) o (0 1) o (1 1)

 Una transacción en el esquema del bloqueo deberá: Emitir una operación bloquear(g,M) antes de operar sobre g en el modo M.. Emitir una operación desbloquear((g)) después de terminar la operación u operaciones correspondientes.. No emitirá una operación bloquear si ya tiene el bloqueo sobre el gránulo (excepto promociones).. No emitirá una operación desbloquear a menos que ya posea el bloqueo correspondiente.  El módulo de gestión de bloqueos del SGBD se ocupa de asegurar que se cumpla lo anterior.

 ¿Qué información se necesita mantener en el protocolo del bloqueo? Información sobre las transacciones que bloquean un determinado gránulo: tabla de bloqueo.  Las operaciones solicitados para una transacción se almacenan en un vector de bits M (los k valores son las diferentes operaciones posibles, normalmente 2, lee y esc): A(g,i)=[a1,a2,..,aj,...,ak] Ti g aj=1 si Ti tiene bloqueado g para esa operación. aj=0 si Ti no tiene bloqueado g para esa operación M=[m1,m2,..,mj,...,mk]

 Proposición: los modos de operación solicitados durante una acción de bloquear((g,, M,, Tp)) son compatibles con los modos de operación actualmente bloqueados sí se cumple lo siguiente: ¬( (Ui!=p A(i,g)) * ¬C ) M  ¿Qué hacer cuando las operaciones no son compatibles?  Se guarda la petición en una colla de espera,, y se bloquea la transacción hasta que el gránulo esté disponible.  La inserción en la cola de espera puede seguir diversos criterios  Cada gránulo tiene una cola de espera que indica las transacciones que están esperando para utilizarlo y el modo de operación que solicitan.

desbloquear(gránulo g, id_transac t) { elem_cola *q; id_transac p; A(g,t)=0; //vector con todo ceros q=primer_elem_cola(g); while(q!=NULL) { p=q->id_transac; M=q->modo_op; if ( ¬((Ui!=p A(i,g))*¬C)) M ) { A(g,p)=A(g,p) U M; eliminar_de_cola(g,p); desbloquear_transaccion(p); } q=sig_elem_cola(g); } }

 Se llama transacción en dos fases aquella que no realiza ningún bloqueo después de haber realizado alguna operación de desbloquear. En una transacción en dos fases:  FASE DE EXPANSIÓN ( o de crecimiento), durante la cual se pueden adquirir nuevos bloqueos sobre elementos pero no se puede liberar ninguno.  FASE DE CONTRACCIÓN, durante la cual se pueden liberar todos los bloqueos existentes pero no se pueden adquirir nuevos bloqueos.  Proposición: toda planificación compuesta de transacciones en dos fases es serializable.

 El protocolo en dos fases limita la concurrencia pero garantiza que los planes sean serializables. B2F básico: va tomando bloqueos y luego los va liberando. B2F conservador: toma todos los bloqueos al principio y si no se espera (poco práctico). B2F estricto: no libera ningún bloqueo exclusivo hasta después de confirmar o abortar. (asegura planificaciones estrictas) B2F riguroso: no libera ningún bloqueo hasta después de confirmar o abortar.

 Se basa en asegurar que el acceso a los gránulos por las transacciones se realiza en el orden asignado inicialmente (que es el orden de inicio de las transacciones).  Si esto no se cumple: se debe abortar una transacción (la que produjo el conflicto) se revierte la transacción y se relanza asignándole otra marca tiempo.  Posible codificación:

 Un enfoque para garantizar la seriabilidad de los planes supone usar marcas de tiempo para ordenar la ejecución de estas.  Una marca de tiempo es un identificador único que el SGBD crea para identificar una transacción.  Las marcas de tiempo se asignan en el orden en que las  transacciones se introducen en el sistema.  Generación de marcas de tiempo: Contador Reloj del sistema  La marca de tiempo de gránulo es un valor numérico asociado con un gránulo que almacena la marca de tiempo de la última transacción que operó sobre el gránulo.

 Se intenta ordenar aquellas operaciones que son conflictivas (y que no son permutables).  Se definen dos marcas de tiempo para un gránulo: Marca de tiempo de lectura ( MT lec(g) ): corresponde a la mayor (la más alta) marca de tiempo de las transacciones que han leído el granulo. Marca de tiempo de escritura (( MT_esc(g)): corresponde a la mayor (la más alta) marca de tiempo de las transacciones que han escrito en el granulo.  Este algoritmo comprueba si las operaciones en conflicto respetan el orden asignado a las transacciones. Se realizan comprobaciones diferentes para las operaciones de lectura y escritura.

 Regla de escritura de Thomas: constituye una mejora del algoritmo anterior en la escritura. Si una transacción pretende escribir en un gránulo con una MT_esc > MT de la transacción, se puede ignorar dicha escritura (siempre que ninguna transacción con marca posterior haya leído el granulo).

 Este algoritmo consiste en ir guardando varias versiones del mismo dato (gránulo): se conservan los valores antiguos de los gránulos que se han actualizado.  Lectura: Cuando una Transacción necesita leer algún gránulo, se elige una versión adecuada para mantener la seriabilidad de la planificación, si es posible.  Escritura: Cuando una Transacción escribe un gránulo, escribe una nueva versión de ese gránulo, conservándose además la versión anterior.  Desventaja: requiere más almacenamiento que los anteriores.  Muchas veces estas versiones se aprovechan para la recuperación.

CODIFICACION

 Si hay pocas interferencias (conflictos) entre transacciones (mayoritariamente son lecturas), casi todas se validarán sin dificultad (por ello se llaman optimistas).  Existen varios algoritmos de este tipo. Uno de ellos se basa en la asignación de marcas de tiempo.  La fase de validación comprueba para cada transacción Ti las siguientes condiciones:

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 GRANULARIDAD DE DATOS GRANULARIDAD DE DATOS Elementos de bases de datos y granularidad

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

 Para trabajar con granularidad múltiple se define una matriz de compatibilidad con los modos normales y los modos de intención, repitiéndose C y siendo E una matriz de unos.  POR EJEMPLO: GRANULARIDAD MULTIPLE GRANULARIDAD MULTIPLE C C C E LE L10 E00 LEILIE L1010 E0000 IL1011 IE0011

 Para bloquear un gránulo en un modo determinado, la transacción debe bloquear todos los gránulos que lo contengan en modo de intención y el gránulo en modo normal. GRANULARIDAD MULTIPLE GRANULARIDAD MULTIPLE

 Generalmente los bloqueos se hacen en los índices, de manera que hay ciertas variantes entre los distintos tipos.  B-tree indexes: Bloqueos exclusivos o compartidos para R/W a nivel de página Los bloqueos son liberados inmediatamente después de que cada tupla es recuperada o insertada Proveen la más alta concurrencia sin condiciones de "deadlock"  Hash indexes:  Bloqueos exclusivos o compartidos para R/W a nivel de página  Los bloqueos son liberados inmediatamente después de que cada página es procesada  El bloqueo por página es mejor (hablando de concurrencia) que aquellos por nivel de índice pero son más factibles para "deadlocks" USO DE BLOQUEO PARA EL CONTROL DE CONCURRENCIA EN INDICE. USO DE BLOQUEO PARA EL CONTROL DE CONCURRENCIA EN INDICE.

 B-Tree índices ofrecen el mejor rendimiento para aplicaciones concurrentes, además de tener más ventajas que los índices hash. Son recomendados para aplicaciones que requieren indexar datos "escalares" en otro caso hay que esta consientes de las limitantes que presentan los otros esquemas.

 Bloqueos mortales o interbloqueos: (deadlock)  Un sistema está en estado de interbloqueo cuando toda Ti del conjunto de T’s que están en ejecución, está esperando por algún recurso que tiene bloqueado otra Ti. Suceden cuanto más alto es el grado de Aislamiento.  Hay dos estrategias: prevenirlos o detectarlos+recuperación. OTRAS CUESTIONES SOBRE EL CONTROL DE CONCURRENCIAS. OTRAS CUESTIONES SOBRE EL CONTROL DE CONCURRENCIAS.

 Prevención:  1.- Usando bloqueos solamente: - BSF conservador: o todos los elementos bloqueados o ninguno - Difícil predecir qué bloqueos necesito antes de empezar - Se mantienen bloqueos innecesarios - Fijar un orden parcial preestablecido de ejecución de las T’s: protocolo de árbol - Se necesita conocer el orden para programar: difícil. OTRAS CUESTIONES SOBRE EL CONTROL DE CONCURRENCIAS. OTRAS CUESTIONES SOBRE EL CONTROL DE CONCURRENCIAS.

 Usando MTs y bloqueos: cada Ti. se pone su MT, y el CC usa bloqueos.  Dos estrategias para decidir quien tiene que esperar o retroceder si Ti solicita un elemento que tiene bloqueado Tj : - Esperar-morir: - Ti espera solo si MT(Ti) < MT(Tj) -- Ti anterior a Tj – - En otro caso Ti muere - Herir-esperar: - Ti espera solo si MT(Ti) > MT(Tj) - En otro caso Tj se retrocede --Ti “hiere” a Tj -- y Tj expropia el elemento en conflicto  No se producen esperas indefinidas (inanición):si Ti retrocede conserva su MT antigua. OTRAS CUESTIONES SOBRE EL CONTROL DE CONCURRENCIAS. OTRAS CUESTIONES SOBRE EL CONTROL DE CONCURRENCIAS.

 Diferencias de funcionamiento en las dos estrategias: - Esperar-morir: -Cuanto más antigua es T, más espera -La Ti que muere, puede morir varias veces si el recurso sigue bloqueado - Herir-esperar: -Una T antigua no espera a una T reciente -Entre Ti y Tj se alternan la espera. OTRAS CUESTIONES SOBRE EL CONTROL DE CONCURRENCIAS. OTRAS CUESTIONES SOBRE EL CONTROL DE CONCURRENCIAS.