Documentos de Académico
Documentos de Profesional
Documentos de Cultura
PRESENTADO POR:
PRESENTADO A:
Diciembre 10 de 2019
CONTROL DE CONCURRENCIA
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.
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 pérdida de actualizaciones. Hibernate
proporciona tres enfoques posibles de escribir código de aplicación que utilice
concurrencia optimista. Los casos de uso que mostramos se encuentran en el
contexto de conversaciones largas, pero el chequeo de versiones tiene además el
beneficio de prevenir la pérdida de actualizaciones en transacciones individuales de
la base de datos.
Livelock
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
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
NIVELES DE BLOQUEO
MODOS DE BLOQUEO
• 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.
Caso particular de protocolo basado en grafos, grafos que sean árboles con raíz.
REGLAS:
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;
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
RECUPERACIÓN DE CAÍDAS
Tipos de caídas:
• Error de memoria volátil.
• Error de memoria permanente.
Activity Monitor
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.
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.
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 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
Data Collector es otra característica de monitoreo y optimización integrada en SQL
Server Management Studio. Colectas 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.
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