You are on page 1of 12

AA10-Ev2-Manejo de transacciones, bloqueos y control de

concurrencia ejecutando la prctica propuesta.

PRESENTADO POR:

Yeimmy Paola Camargo Useche

PRESENTADO A:

INGENIERO JORGE AUGUSTO VILLADA SUAZA

SERVICIO NACIONAL DE APRENDIZAJE SENA


CENTRO DE PROCESOS INDUSTRIALES Y CONSTRUCCIN

BOGOT D.C
Octubre 10 de 2017
CONTROL DE CONCURRENCIA

El control de accesos concurrentes y especficamente de transacciones


concurrentes es manejado por un mdulo del dbms llamado "scheduler".

Muchos de los datos de la base no se encuentran nada ms en disco, sino tambin


en los buffers de memoria, de ah que el scheduler interacta 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 cmo se deben
acceder los recursos para generar planificaciones secuenciales
(vistas o conflictos)
Inanicin: Cuando una transaccin 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 versin
utiliza nmeros de versin, o sellos de fecha (timestamps), para detectar
actualizaciones en conflicto y para prevenir la prdida de actualizaciones. Hibernate
proporciona tres enfoques posibles de escribir cdigo de aplicacin que utilice
concurrencia optimista. Los casos de uso que mostramos se encuentran en el
contexto de conversaciones largas, pero el chequeo de versiones tiene adems el
beneficio de prevenir la prdida de actualizaciones en transacciones individuales de
la base de datos.
Livelock

Espera indefinida de una transaccin por un bloqueo que no se llega a conceder


porque se cede a otras transacciones.

Una solucin (sistemas operativos): estrategia first-come-first-served (se atiende al


primero que llega).

Deadlock
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- Concesin simultnea de todos los bloqueos de una transaccin.


2- Asignar un orden lineal arbitrario a los elementos

BLOQUEO PESIMISTA

El modelo de bloqueo pesimista impide actualizaciones simultneas 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 actualizacin 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. Slo entonces puede otro usuario realizar
cambios basados en los cambios del usuario anterior.

Una ventaja del modelo de bloqueo pesimista es que impide el problema de la


resolucin de conflictos evitando los conflictos. Las actualizaciones se serializan y
cada actualizacin 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 actualizacin anterior. Esto normalmente implica
que las actualizaciones se producen en un intervalo corto de tiempo.

Serializacin de transacciones.
Permite el proceso de transacciones asignndoles tiempos de procesamiento el cual
permite incrementar el rendimiento del sistema ya que se ejecuta un mximo de
procesos en forma concurrente y no a travs de una serie. La ventaja es que a un mismo
tiempo de reloj se pueden hacer dos operaciones, aunque el proceso de sincronizacin
es mas complicado.
Un aspecto muy importante en el manejo de transacciones es el de mantener y
aplicar algoritmos de control sobre los datos o recursos; para ese control tambin
se utilizan protocolos que proporcionen confiabilidad como lo siguientes:
< Atomicidad
< Protocolos de recuperacin total
< Protocolos de compromiso global

BLOQUEOS

Un bloqueo es una informacin del tipo de acceso que se permite a un elemento. El


SGBD impone 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 ms adecuado (locking hints).

Tipos de bloqueo con respecto a la operacin:


read-locks: slo permite lectura
write-locks: permite lectura y escritura

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


(<elemento>, <tipo de bloqueo>, <transaccin>)=(E,B,T)

La transaccin 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.

NIVELES DE BLOQUEO

Especifica la granularidad del bloqueo

Fila: Fila individual


Clave: Fila de un ndice
Pgina: Pginas (8KB)
Extent: Extensin (grupo de 8 pginas contiguas de datos o ndices)

MODOS DE BLOQUEO

Especifica el modo en que se bloquea un elemento

Compartido: para operaciones slo de lectura. Se permiten lecturas concurrentes,


pero ninguna actualizacin.
Actualizacin: para operaciones que pueden escribir. Slo se permite que una
transaccin adquiera este bloqueo. Si la transaccin modifica datos, se convierte en
exclusivo, en caso contrario en compartido.

Exclusivo. para operaciones que escriben datos. Slo se permite que una
transaccin adquiera este bloqueo.

Intencin: se usan para establecer una jerarqua de bloqueo. Por ejemplo, si una
transaccin necesita bloqueo exclusivo y varias transacciones tienen bloqueo de
intencin, no se concede el exclusivo.

Intencin compartido. Bloqueo compartido.

Intencin exclusivo. Bloqueo exclusivo.

Compartido con intencin exclusivo. Algunos bloqueos compartidos y otros


exclusivos.

Esquema. para operaciones del DDL.

Actualizacin masiva. En operaciones de actualizacin masiva

Table: Tabla completa

Database: Base de datos completa

BLOQUEO DE DOS FASES ESTRICTO


Se usa para solucionar el problema anterior.
1. Una transaccin no puede escribir en la base de datos hasta que se haya
alcanzado su punto
de compromiso. (Evita los retrocesos en cascada)
2. Una transaccin no puede liberar ningn bloqueo hasta que haya finalizado de
escribir en la
base de datos, i.e., los bloqueos no se liberan hasta despus 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. Organizacin lgica o fsica de los elementos.


2. Definicin de elementos de varios tamaos, donde los grandes engloban a los
pequeos. Ej:
relacional: tupla bloque relacin base de datos.
3. Control de concurrencia efectivo.
Se pueden disear 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 d ,
entonces la
transaccin que acceda tanto a i d como a j d debe acceder primero a i d y
despus a j d .
PROTOCOLO DE RBOL

Caso particular de protocolo basado en grafos, grafos que sean rboles con raz.

REGLAS:

1. Cada transaccin 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 slo 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 lgicos
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 ORDENACIN POR MARCAS TEMPORALES

Asegura que todas las operaciones leer y escribir conflictivas se ejecutan en el


orden de las
marcas temporales.
1. Supngase que la transaccin 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 operacin READ y Ti se retrocede.
b. Si MT(Ti) MTW(D) entonces se ejecuta la operacin READ y MTR(D) se
asigna al mximo de MTR(D) y de MT(Ti).
2. Supngase que la transaccin 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 operacin 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 operacin WRITE y Ti se retrocede.
c. En otro caso se ejecuta la operacin WRITE y MT(Ti) se asigna a MTW(D).

Gestin de fallos de transacciones

Causas de aborto:
1. Fallo de la transaccin: interrupcin por el usuario, fallo aritmtico, privilegios de
acceso...
2. Deadlock->aborto de una transaccin
3. Algoritmos de secuencialidad.
4. Error software o hardware
Fcil: 1, 2 y 3. Difcil: 4. Puntos de recuperacin por copias de seguridad.
COMPROMISO DE TRANSACCIONES

Transacciones activas. En ejecucin


Transacciones completadas. Slo 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.

RECUPERACIN DE CADAS

Tipos de cadas:
Error de memoria voltil.
Error de memoria permanente.

Problema: asegurar la atomicidad de las escrituras de las transacciones. Puede


haber una cada del sistema antes de que se hayan escrito todos los datos
modificados por una transaccin.

HERRAMIENTAS PARA EL MONITOREO Y MANEJO DE TRANSACCIONES.

CMO MONITOREAR INSTANCIAS Y BASES DE DATOS SQL SERVER

Activity Monitor

Activity Monitor rastrea solo las mtricas de SQL Server ms importantes. Para
obtenerlas, ejecuta consultas contra su instancia SQL Server anfitrin cada 10
segundos. EL desempeo es monitoreado slo mientras Activity Monitor est
abierto, lo que lo hace una solucin ligera con casi ningn costo extra.

Las mtricas 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, nmero de


tareas en espera, operaciones I/O en la base de datos en MB/seg, y el nmero de
requerimientos batch.
El panel Processes muestra procesos de SQL Server actualmente funcionando en
la instancia. La informacin mostrada es: Login, aplicacin y anfitrin usados, estado
de tarea y comando, tiempo de espera, etc. La informacin en la tabla puede ser
filtrada por el valor de la columna especfico.

El men contextual del panel Process provee una caracterstica til para un anlisis
ms profundo y resolucin de problemas. Es el rastreo de procesos seleccionado
en SQL Server Profiler.

EL panel Resource Waits muestra esperas para diferentes recursos: memoria,


compilacin, red, etc.

Muestra el tiempo de espera (el tiempo que las tareas de SQL Server estn
esperando en recursos del sistema), el tiempo de espera reciente, el tiempo
acumulativo de espera y el contador de espera promedio.

El panel Data File I/O 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 Recent Expensive Queries muestra las consultas en los ltimos 30


segundos que usaron ms recursos: procesador, memoria, disco y red. El men
contextual permite abrir la consulta en una pestaa de consultas de SQL Server
Management Studio y abrir su plan de ejecucin.

Data Collector
Data Collector es otra caracterstica de monitoreo y optimizacin integrada en SQL
Server Management Studio. Colecta mtricas de desempeo de instancias SQL
Server, lasguarda en un repositorio local de tal manera que puedan ser usadas para
un anlisis posterior. Usa Data Warehousing, SQL Server Agent e Integration
Services.

A diferencia de Activity Monitor, Data Collector le permite especificar las mtricas


que monitorear. Ofrece tres conjuntos integrados de mtricas (colectores de datos)
con las mtricas de monitoreo de desempeo ms importantes y comunes. Para
monitorear mtricas de desempeo adicionales, colectores de datos personalizados
pueden ser creados va cdigo T-SQL o API.

El reporte integrado Disk Usage est disponible en el men contextual Data


Collection. 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 Query Statistics recolecta cdigo de


consultas, estadsticas, actividad y planes de ejecucin de consultas para las 10
consultas ms costosas.
EL conjunto de recolectores de datos Server Activity recolecta datos acerca del
procesador, la memoria, el disco I/O y el uso de red. El reporte muestra la CPU, la
memoria, el disco I/O y el uso de la red, las esperas de SQL Server, la instancia de
SQL Server y la actividad del sistema operativo.
Bibliografa

1. ULLMAN, J.D. "Principles of Databases and Knowledge Base Systems",


Vol. I, Computer Science Press, 1998

2. SILBERSCHATZ, A., KORTH, H.F., SUDARSHAN, S. "Fundamentos de


bases de datos", 3 edicin, McGraw-Hill, 1998.

REFERENCIA WEB

1. https://solutioncenter.apexsql.com/es/como-monitorear-sus-instancias-y-
bases-de-datos-sql-server/
2. http://dis.unal.edu.co/~icasta/icf_admon_bd.html

You might also like