Documentos de Académico
Documentos de Profesional
Documentos de Cultura
SENA
2019
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.
Livelock
Espera indefinida de una transacción por un bloqueo que no se llega a conceder
porque se cede a otras transacciones, una solución (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):
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. Sólo entonces puede otro usuario realizar
cambios basados en los cambios del usuario anterior.
Serialización de transacciones
Permite el proceso 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 tiempo 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 de mantener y
aplicar algoritmos de control sobre los datos o recursos; para ese control también se
utilizan protocolos que proporcionen confiabilidad como lo siguientes:
● Atomicidad
● Protocolos de recuperación total
● Protocolos de compromiso global
Bloqueos
Un bloqueo es un 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 más adecuado (locking hints).
Niveles de Bloqueo
Especifica la granularidad del bloqueo
Modos de Bloqueo
Especifica el modo en que se bloquea un elemento
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 →d , entonces la transacción que acceda tanto a i d como a
j d debe acceder primero a i d y después a j d .
Protocolo de Árbol
Caso particular de protocolo basado en grafos, grafos que sean árboles con raíz.
Reglas:
● Cada transacción i T bloquea al menos un elemento.
● El primer bloqueo de i T puede ser sobre cualquier elemento.
● Sucesivos bloqueos de i T sólo pueden ser sobre elementos cuyo padre haya
bloqueado i T .
● Los elementos se pueden desbloquear en cualquier momento.
● 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;
Compromiso de Transacciones
Recuperación de Caídas
Tipos de caídas:
● Error de memoria volátil.
● Error de memoria permanente.
Activity Monitor: rastrea solo las métricas de SQL Server más importantes, para
obtenerlas ejecutar 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.
El menú contextual del panel Process 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 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.
Data Collector
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 Agent e Integration Services.