Está en la página 1de 16

AA10 EV3 Manejo de transacciones, bloqueos y control de concurrencia en un motor de base de

datos especifico

Alcaldía de san Antonio del SENA

Ficha 1966112

Instructor:

Camilo Andrés Gutiérrez Oviedo

Aprendiz:

Jised Patricia Hernández Támara


Carol Michell Villamizar Chía

Especialización Tecnológica en Gestión y Seguridad de Bases de Datos

Servicio Nacional de Aprendizaje SENA

Sincelejo, Mayo de 2020


INTRODUCCION

Las Bases de datos: Almacenan y recuperan cantidades masivas de datos estructurados. Proveen
un mecanismo para definir información estructurada y un lenguaje de consulta y modificación de
la misma (generalmente SQL). Los detalles del almacenamiento no necesitan ser conocidos por el
usuario: la base de datos maneja la correspondencia entre los registros u objetos abstractos del
usuario y su disposición en el medio físico.

Cada base de datos actúa como un manejador de recursos y de ese modo provee operaciones
ACID sobre sus datos. También provee un conjunto de herramientas para visualizar los datos y
generar reportes.
Objetivos

Controlar los procesos para la gestión de transacciones, bloqueos y el control de concurrencia en


las Bases de Datos.
Control de concurrencia

El control de accesos concurrentes y específicamente de transacciones concurrentes es manejado


por un módulo del dbms llamado "scheduler".

Muchos de los datos de la base no se encuentran nada más en disco, sino también en los buffers
de memoria, de ahí que el scheduler interactúa con ellos y en su defecto solicita la lectura de los
datos del disco.

 Mecanismo para asegurar la propiedad de aislamiento.


 Protocolo de Bloqueo: reglas acerca de cómo se deben.
 Acceder los recursos para generar planificaciones secuenciales (vistas o conflictos).
 Inanición: cuando una transacción debe esperar por siempre (1).
 Interbloqueos: (dead locks).
 Perder la concurrencia (todo secuencial).
 Largas esperas.

Control de concurrencia optimista

El único enfoque consistente con una alta concurrencia y una alta escalabilidad es el control de
concurrencia optimista con versiona miento. El chequeo de versión utiliza números de versión, o
sellos de fecha (timestamps), para detectar actualizaciones en conflicto y para prevenir la perdida
de actualizaciones.
Hibérnate proporciona tres enfoques posibles de escribir código de aplicación que utilice
concurrencia optimista. Los casos de usos que mostramos se encuentran en el contexto de
conversaciones largas, pero el chequeo de versiones tiene además el beneficio de prevenir la
perdida de actualizaciones en tracciones individuales de la base de datos.
LIVELOCK

Espera indefinida de una transacción por un bloqueo que no se llega a conceder por que se cede a
otras transacciones.
Una solución (Sistemas Operativos): estrategia first-come-first-served (se atiende al primero que
llega).

T1: LOCK A; LOCK B; UNLOCK A; UNLOCK B;


T2: LOCK B; LOCK A; UNLOCK B; UNLOCK A;
T1 Y T2 bloquean A Y B => Espera indefinida de T1 y T2

Soluciones (Sistemas Operativos):

1. Concesión simultanea de todos los bloqueos de una transacción.


2. Asignar un orden lineal arbitrario a los elementos.

BLOQUEO PESIMISTA

El modelo de bloqueo pesimista impide actualizaciones simultáneas de los registros. Tan pronto
como un usuario empieza a actualizar un registro, se coloca un bloqueo sobre el mismo. Se
informa a otros usuarios que intentan actualizar este registro de que otro usuario tiene una
actualización en curso. Los otros usuarios deben esperar hasta que el primer usuario haya acabado
de confirmar los cambios, liberando de esta forma el bloqueo del registro. Solo entonces puede
otro usuario realizar cambios basados en los cambios del usuario anterior.

Una ventaja del modelo del bloqueo pesimista es que impide el problema de la resolución de
conflictos evitando los conflictos. Las actualizaciones se serializan y cada actualización posterior se
inicia con los cambios confirmados del registro del usuario anterior.

El bloqueo pesimista es un enfoque útil cuando se pueden retardar actualizaciones posteriores


hasta que finalice una actualización anterior. Esto normalmente implica que las actualizaciones se
producen en un intervalo corto de tiempo.

SERIALIZACION DE TRANSACCIONES

Permite el acceso de transacciones asignándoles tiempos de procesamiento el cual permite


incrementar el rendimiento del sistema ya que se ejecuta un máximo de procesos en forma
concurrente y no a través de una serie. La ventaja es que a un mismo de reloj se pueden hacer dos
operaciones, aunque el proceso de sincronización es más complicado.

Un aspecto muy importante en el manejo de transacciones es el mantener y aplicar algoritmos de


control sobre los datos o recursos; para ese control también se utilizan protocolos que
proporcionen confiabilidad como los siguientes:

 Atomicidad
 Protocolos de recuperación total
 Protocolos de compromiso global

BLOQUEOS

Un bloqueo es una informacion del tipo de acceso que se permite a un elemento. El SGBD impide
los bloqueos necesarios en cada momento. El gestor de acceso a los datos implementa las
restricciones de acceso. En algunos sistemas se permite que el usuario pueda indicar el bloqueo
más adecuado (locking hints).

Tipos de bloqueos con respecto a la operación:


 read-locks: solo permite lectura
 write-locks: permite lectura y escritura

El gestor de bloqueos almacena los bloqueos en una tabla de bloqueos:

(< elemento >) < tipo de bloqueo >, < transacción >) = (E, B, T)

La transacción T tiene un tipo de bloqueo B sobre el elemento E. normalmente, E es clave, aunque


no siempre, porque varias transacciones pueden bloquear el mismo elemento de forma diferente.

NIVEL DE BLOQUEO

Especifica la granularidad del bloqueo.


 Fila: Fila individual (Clave: Fila de un índice).
 Página: Paginas (8 kB).
 Extent: Extension (grupo de 8 páginas contiguas de datos o índices).

MODOS DE BLOQUEO

Especifica el modo en que se bloquea un elemento:


 Compartido: para operaciones sólo de lectura. Se permiten lecturas concurrentes, pero
ninguna actualización.
 Actualización: para operaciones que pueden escribir. Sólo se permite que una transacción
adquiera este bloqueo. Si la transacción modifica datos, se convierte en exclusivo, en caso
contrario en compartido.
 Exclusivo: para operaciones que escriben datos. Sólo se permite que una transacción
adquiera este bloqueo.
 Intención: se usan para establecer una jerarquía de bloqueo. Por ejemplo, si una
transacción necesita bloqueo exclusivo y varias transacciones tienen bloqueo de intención,
no se concede el exclusivo.
 Intención compartida: Bloqueo compartido.
 Intención exclusiva: Bloqueo exclusivo.
 Compartido con intención exclusivo: Algunos bloqueos compartidos y otros exclusivos.
 Esquema: para operaciones del DDL.
 Actualización masiva: En operaciones de actualización masiva.
 Table: Tabla completa.
 Database: Base de datos completa.

BLOQUEO DE DOS FASES ESTRICTO

Se usa para solucionar el problema anterior.

1. Una transacción no puede escribir en la base de datos hasta que se haya alcanzado su
punto de compromiso. (Evita los retrocesos en cascada).
2. Una transacción no puede liberar ningún bloqueo hasta que haya finalizado de escribir en
la base de datos, i.e., los bloqueos no se liberan hasta después del punto de compromiso

PROTOCOLOS BASADOS EN GRAFOS

A menudo es útil observar el conjunto de elementos de datos de la base de datos como una
estructura de grafo. Por ejemplo:

1. Organización lógica o física de los elementos.


2. Definición de elementos de varios tamaños, donde los grandes engloban a los pequeños.
Ejemplo:

Relacional: tupla ⊆ bloque ⊆ relación ⊆ base de datos.

3. Control de concurrencia efectivo.


Se pueden diseñar protocolos que no sean de dos fases pero que aseguren la
secuencialidad. En general, sea {,,,} 1 2 n D= d d k d el conjunto de todos los elementos de
datos de la base de datos dotado de un orden parcial →. Si en el grafo existe un arco
i j →d, entonces la transacción que acceda tanto i d como a j d deben acceder primero a i
d y después a j d.

PROTOCOLO DE ARBOL

Caso particular de protocolo basado en grafos, grafos que sean arboles con raíz.

REGLAS
1. Cada transacción i T bloquea al menos un elemento.
2. El primer bloqueo de i T puede ser sobre cualquier elemento.
3. Sucesivos bloqueos de i T sólo pueden ser sobre elementos cuyo padre haya bloqueado
i T.
4. Los elementos se pueden desbloquear en cualquier momento.
5. i T no puede bloquear de nuevo un elemento que haya bloqueado y desbloqueado
anteriormente.
T1: LOCK B; LOCK E; LOCK D; UNLOCK B; UNLOCK E; LOCK G; UNLOCK D;
UNLOCK G;
T2: LOCK D; LOCK H; UNLOCK D; UNLOCK H;
T3: LOCK B; LOCK E; UNLOCK E; UNLOCK B;
T4: LOCK D; LOCK H; UNLOCK D; UNLOCK H;

TRANSACCIONES:

Cada i T lleva asociada una marca temporal fijada ( ) i MT T.

Si Ti se selecciona antes que Tj, entonces ( ) ( ) i j MT T < MT T.

El valor de ( ) i MT T puede extraerse del reloj del sistema o con contadores lógicos de
transacciones.

ELEMENTOS

Cada elemento de datos D lleva asociado dos marcas temporales:

MTR (D): mayor marca temporal de todas las transacciones que ejecutan con éxito READ D;
MTW (D): mayor marca temporal de todas las transacciones que ejecutan con éxito WRITE D;

PROTOCOLO DE ORDENACIÓN POR MARCAS TEMPORALES.

Asegura que todas las operaciones leer y escribir conflictivas se ejecutan en el orden de las marcas
temporales.

1. Supóngase que la transacción Ti ejecuta READ (D).

a) Si MT (Ti) < MTW (D) entonces Ti necesita leer un valor de D que ya se ha sobrescrito.
Por tanto se rechaza la operación READ y Ti se retrocede.
b) Si MT (Ti) ≥ MTW (D) entonces se ejecuta la operación READ y MTR (D) se asigna al
máximo de MTR (D) y de MT (Ti).
2. Supóngase que la transacción Ti ejecuta WRITE (D).

a) Si MT (Ti) < MTR (D) entonces el valor de D que produce Ti se necesita previamente y
el sistema asume que dicho valor no se puede producir nunca. Por tanto, se rechaza la
operación WRITE y Ti se retrocede.
b) Si MT (Ti) < MTW (D) entonces Ti está intentando escribir un valor de D obsoleto. Por
tanto, se rechaza la operación WRITE y Ti se retrocede.
c) En otro caso se ejecuta la operación WRITE y MT (Ti) se asigna a MTW (D).
GESTION DE FALLOS DE TRANSACCIONES

Causas de aborto:
1. Fallo de la transacción: interrupción por el usuario, fallo aritmético, privilegios de acceso...
2. Deadlock->aborto de una transacción.
3. Algoritmos de secuencialidad.
4. Error software o hardware.

Fácil: 1, 2 y 3. Difícil: 4. Puntos de recuperación por copias de seguridad.

COMPROMISO DE TRANSACCIONES

Transacciones activas. En ejecución.


Transacciones completadas. Sólo pueden abortar por causa grave: 4.
Punto de compromiso: COMMIT. Momento a partir del cual se entienden completadas.

Las transacciones comprometidas ni se retroceden ni se rehacen.

RECUPERACION DE CAIDAS

Tipos de caídas:

 Error de memoria volátil.


 Error de memoria permanente.

Problema: asegurar la atomicidad de las escrituras de las transacciones. Puede haber una caída del
sistema antes de que se hayan escrito todos los datos modificados por una transacción.

HERRAMIENTAS PARA EL MONITOREO Y MANEJO DE TRANSACCIONES.

CÓMO MONITOREAR INSTANCIAS Y BASES DE DATOS SQL SERVER.

MONITOR DE ACTIVIDAD.
Activity Monitor rastrea solo las métricas de SQL Server más importantes. Para obtenerlas, ejecuta
consultas contra su instancia SQL Server anfitrión cada 10 segundos. EL desempeño es
monitoreado sólo mientras Activity Monitor está abierto, lo que lo hace una solución ligera con
casi ningún costo extra.

Las métricas son mostradas en 5 paneles colapsables: Overview, Processes, Resource Waits, Data
File I/O, y Recent Expensive Queries. El panel Overview muestra el porcentaje de tiempo del
procesador, número detareas en espera, operaciones I/O en la base de datos en MB/seg, y el
número de requerimientos batch.
El panel Procesos muestra procesos de SQL Server actualmente funcionando en la instancia. La
información mostrada es: Login, aplicación y anfitrión usados, estado de tarea y comando, tiempo
de espera, etc. La información en la tabla puede ser filtrada por el valor de la columna específico.

El menú contextual del panel Procesos provee una característica útil para un análisis más profundo
y resolución de problemas. Es el rastreo de procesos seleccionado en SQL Server Profiler.

EL panel Esperas de recursos muestra esperas para diferentes recursos: memoria, compilación,
red, etc.
Muestra el tiempo de espera (el tiempo que las tareas de SQL Server están esperando en recursos
del sistema), el tiempo de espera reciente, el tiempo acumulativo de espera y el contador de
espera promedio.

El panel E/S de archivo de datos muestra una lista de todos los archivos de base de datos: MDF,
NDF y LDF, sus nombres y rutas, actividad reciente de lectura y escritura y tiempo de respuesta.

EL panel Consultas costosas recientes muestra las consultas en los últimos 30 segundos que
usaron más recursos: procesador, memoria, disco y red. El menú contextual permite abrir la
consulta en una pestaña de consultas de SQL Server Management Studio y abrir su plan de
ejecución.

RECOLECTOR DE DATOS.

Recolector de datos es otra característica de monitoreo y optimización integrada en SQL Server


Management Studio. Colecta métricas de desempeño de instancias SQL Server, las guarda en un
repositorio local de tal manera que puedan ser usadas para un análisis posterior. Usa Data
Warehousing, SQL Server Agente Integration Services.
A diferencia de Monitor de actividad, Recolección de datos le permite especificar las métricas que
monitoreará. Ofrece tres conjuntos integrados de métricas (colectores de datos) con las métricas
de monitoreo de desempeño más importantes y comunes. Para monitorear métricas de
desempeño adicionales, colectores de datos personalizados pueden ser creados vía código T-SQL o
API.
El reporte integrado Uso del disco está disponible en el menú contextual Recopilación de datos.
Muestra el espacio usado por los archivos de la base de datos, las tendencias de crecimiento y el
crecimiento promedio diario.

El conjunto de recolectores de datos Estadísticas de consulta recolecta código de consultas,


estadísticas, actividad y planes de ejecución de consultas para las 10 consultas más costosas.
EL conjunto de recolectores de datos Actividad del servidor recolecta datos acerca del procesador,
la memoria, el disco E/S y el uso de red. El reporte muestra la CPU, la memoria, el disco E/S y el
uso de la red, las esperas de SQL Server, la instancia de SQL Server y la actividad del sistema
operativo.
CONCLUCION

De acuerdo con el diseño lógico presentado, podemos concluir que se pueden suplir las necesidad
de la organización en este caso la alcaldía de san Antonio del Sena cumpliendo con la labor de
ayudar a los funcionarios municipales para que brinden un mejor servicio a las personas del
pueblo ya que se pueden obtener un fácil acceso a la información, confiabilidad en los datos de
cada una de las secretarias y estas podrán disponer independientemente de otras sus propios
recursos según lo que planificamos en trabajos anteriores.

Mantener siempre la información protegida y respaldada ante cualquier eventualidad, así como la
conservación de la información.

También podría gustarte