Beruflich Dokumente
Kultur Dokumente
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.
Espera indefinida de una transacción por un bloqueo que no se llega a conceder porque
se cede a otras transacciones.
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):
Concesión simultánea de todos los bloqueos de una transacción.
Asignar un orden lineal arbitrario a los elementos.
BLOQUEO PESIMISTA.
Una ventaja del modelo de 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.
SERIALIZACIÓN DE TRANSACCIONES.
Atomicidad.
Protocolos de recuperación total.
Protocolos de compromiso global.
BLOQUEOS.
NIVELES DE BLOQUEO.
MODOS DE 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 compartido. Bloqueo compartido.
Intención exclusivo. 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.
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)
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
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:
El valor de ( ) i MT T puede extraerse del reloj del sistema o con contadores lógicos de
transacciones.
ELEMENTOS:
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;
Asegura que todas las operaciones leer y escribir conflictivas se ejecutan en el orden de
las marcas temporales.
Causas de aborto:
COMPROMISO DE TRANSACCIONES.
RECUPERACIÓN DE CAÍDAS.
Tipos de caídas:
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 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.
ULLMAN, J.D. "Principles of Databases and Knowledge Base Systems", Vol. I, Computer
Science Press, 1998
https://senaintro.blackboard.com/bbcswebdav/pid-113668215-dt-content-rid-
127063878_4/institution/semillas/217219_1_VIRTUAL/OAAPs/OAAP5/aa10/oa
_bloqueosconcurrencia/index.html
https://senaintro.blackboard.com/bbcswebdav/pid-113668215-dt-content-rid-
127063878_4/institution/semillas/217219_1_VIRTUAL/OAAPs/OAAP5/aa10/oa
_bloqueosconcurrencia/oc.pdf