Monografias.com > Computación > Programación
Descargar Imprimir Comentar Ver trabajos relacionados

Transacciones, recuperación y control de concurrencia




Enviado por Pablo Turmero



Partes: 1, 2

    Monografias.com

    Transacciones
    Transacción: colección de operaciones que forman una única unidad lógica de trabajo en una BD
    Control concurrencia
    Sistemas multiusuario: ejecución intercalada
    Recuperación
    Para cuando una transacción falla
    Vida de una transacción
    Inicio
    Lecturas/escrituras de elementos de la BD
    Final (pueden hacer falta algunas verificaciones)
    Confirmación (COMMIT) o anular (ROLLBACK)

    Monografias.com

    Transacciones
    Toda transacción debe cumplir el principio ACID
    Atómica: se ejecuta todo (commit) o nada (rollback)
    Debe garantizarlo el método de recuperación del SGBD
    Consistente: pasa de un estado consistente a otro
    Debe garantizarlo el programador y el SGBD (restr. int.)
    aIslada: no lee resultados intermedios de otras transacciones que no han terminado
    Debe garantizarlo el método de control de concurrencia y el programador (ej: usando protocolo bloqueo en 2 fases).
    Duradera: si se termina con éxito (commit), los cambios en la BD son estables aunque luego falle otra
    Debe garantizarlo el método de recuperación.

    Monografias.com

    Recuperación
    Caídas del sistema durante una transacción
    Errores de ejecución: overflow, división por 0…
    Errores lógicos que violan alguna regla de integridad (definida explícitamente o no) y que dejan inconsistente la BD -> programador/ABD
    Problemas de concurrencia de transacciones
    Fallos de lectura/escritura en disco
    Problemas físicos y catástrofes: fuego, robos, sabotajes, fallos “humanos”,… –> medidas de seguridad informática en la empresa.

    Monografias.com

    Recuperación
    Para que el sistema se pueda recuperar ante fallos se necesita grabar cada operación con la BD en un fichero LOG (bitácora). Checkpoints.
    se escribe en el fichero LOG antes que en la BD
    el fichero LOG debe estar en memoria estable
    Por cada operación se escribe un reg. en LOG
    < comienza-transacción, numt>
    < escritura, numt, id_dato, val_viejo, val_nuevo>
    < lectura, numt, id_dato, valor>
    < termina_transacción_con_éxito, numt>
    < punto_comprobación, numt, numc>

    Monografias.com

    Problemas de concurrencia
    La ejecución concurrente de transacciones puede dar lugar a problemas:
    Problema de la actualización perdida
    Problema de leer una actualización temporal (lectura sucia)
    Problema del resumen incorrecto
    Problema de la lectura no repetible

    Monografias.com

    Problemas de Concurrencia
    Sol. trivial: cada transacción se ejecuta en exclusión mutua. ¿Cuál sería la granularidad? ¿BD? ¿Tabla? ¿Tupla? ¿Atributo?
    La solución trivial no es válida: muy restrictiva
    Se supone que las BDs se pensaron para que varios usuarios/aplicaciones accedieran a la vez
    Hay que intercalar acciones pero que el resultado sea como en exclusión mutua

    Monografias.com

    Control de concurrencia: planes serializables
    Dadas las transacciones T1, T2, … Tn,
    T1 compuesto por operaciones O11,O12,..O1 m1
    T2 compuesto por operaciones O21,O22,..O2 m2
    … Tn compuesto por operaciones On1, On2..On mn
    Un plan de ejecución concurrente de las transacciones sería:
    Ej: O11, O21, On1, On2, O12, O22, …, O1 m1, O2 m2, …, On mn
    Una intercalación de todas las operaciones Oij donde para todo i, Oi1 se ejecuta antes que Oi2 … antes que Oi mi
    Un plan es serializable si su resultado es el mismo que el producido por alguno de los posibles planes seriales de T1, T2,…Tn
    Ej:opers. de T2, opers. T1, opers. Tn, …., opers. de T3

    Monografias.com

    Serializabilidad
    Aparte de ACID, queremos que las transacciones sean serializables.
    Determinar si un determinado plan es serializable es un problema NP-completo.
    Solución: Imponer restricciones a la libre intercalación de operaciones entre transacciones
    Técnicas pesimistas: se impide realizar ciertas operaciones si son sospechosas de producir planes no serializables: BLOQUEOS (lock) y MARCAS DE TIEMPO (time-stamping)
    Técnicas optimistas: no imponen restricciones pero después se comprueba si ha habido interferencias

    Partes: 1, 2

    Página siguiente 

    Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

    Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

    Categorias
    Newsletter