Sistemas Distribuidos-Transacciones
Sistemas Distribuidos-Transacciones
Sistemas Distribuidos-Transacciones
Los sistemas distribuidos son potencialmente muy fiables debido a la posibilidad de proveer redundancia y autonoma de recursos en diferentes nodos, esto permite detectar y localizar fallas, sin embargo comnmente tenemos varios aspectos que representan problemas para la integridad de los recursos y que a su vez motivan el uso de transacciones: 1. Dificultad para mantener consistencia en los datos. 2. Una misma va de comunicacin no siempre puede ser utilizada para proveer interaccin entre 2 procesos. 3. Requerimientos de procesamiento en paralelo. 4. Manejo interactivo de uno o ms usuarios Definicin de transacciones. Las transacciones fueron originalmente desarrolladas para ser utilizadas dentro de los sistemas de base de datos, donde se usaba para auxiliar en el mantenimiento de los datos de las aplicaciones y que dependan de la consistencia de la informacin almacenada. Las transacciones son un mecanismo que ayuda a simplificar la construccin de sistemas confiables a travs de procesos que proveen soporte uniforme para invocar y sincronizar operaciones como:
y y y y y
Operaciones de comparticin de datos. Aseguramiento de la seriabilidad de las transacciones con otras. Atomicidad en su comportamiento. Recuperacin de fallas provocadas en red y nodos.
El trmino transaccin describe una secuencia de operaciones con uno o ms recursos (por ejemplo una base de datos) que transforman su estado actual en un nuevo estado de consistencia.
El manejo de transacciones fue desarrollado en el campo de las operaciones financieras donde se tena 3 reglas bsicas: Consistencia: Obedecer ciertas reglas. Atomicidad: Debe ocurrir completo o abortar. Durabilidad: Una vez iniciada una transaccin y terminada completamente no puede ser abortada. Dentro del rea de los sistemas computacionales el concepto de transacciones fue inicialmente utilizado para definir la consistencia entre mltiples usuarios de una base de datos. 2.2 TEORA DE TRANSACCIONES ANIDADAS. Consiste en una serie de modificaciones (transacciones) a un determinado recurso del sistema (por ejemplo una base de datos) y en donde se define un punto de inicio (Begin Tran) y un punto de terminacin que define un bloque entre el conjunto de operaciones que son realizadas . Dentro de este proceso en bloque los dems usuarios no pueden modificar nada hasta que no se presente un estado estable de los datos, esto ocasiona inconsistencia temporal y conflictos. Para evitar lo anterior se implementan dos maneras diferentes: Ejecutar transacciones serializadas. Es un sistema que permite el procesamiento de transacciones en forma secuencial o serializado y consiste en asignarle una secuencia a cada transaccin, este proceso reduce el rendimiento del sistema.
Ejecutar transacciones calendarizadas. Es un sistema que permite el proceso de transacciones asignndole tiempos de procesamiento el cual permite incrementar el rendimiento del sistema ya que se ejecuta un mximo de proceso en forma concurrente y no a travs de una serie.
Propiedades de las transacciones. Atomicidad de fallas. Consiste en efectuar todas las transacciones, pero en caso de falla no se realiza ninguna. Permanencia. Consiste en que una vez completada satisfactoriamente los cambios ya no pueden perderse. una transaccin
Seriabilidad. Consiste en asegurarse que los cambios siguen un orden adecuado. Aborto de transacciones propio para cada transaccin. Es la capacidad que se tiene para abortar el proceso transaccional en cualquier punto, el resultado de esta operacin no puede ser revelado para otras transacciones. Punto de inicio y terminacin. Consiste en especificar un bloque inicial y un punto que termina el fin de ese bloque.
Ejecutar transacciones anidadas. Consiste en tener transacciones que dependen de otras, estas transacciones estn incluidas dentro de otra de un nivel superior y se les conoce como: SubTransacciones. La transaccin de nivel superior puede producir hijos (Subtransacciones) que hagan ms fcil la programacin del sistema y mejorando el desempeo.
Instrucciones para el uso de transacciones. La programacin con uso transacciones requiere de instrucciones especiales, las cuales deben ser proporcionadas por el sistema operativo, por el compilador del lenguaje o por el manejador de la base de datos. Algunos ejemplos son: BEGIN_TRANSACTION END_TRANSACTION ABORT_TRANSACTION READ WRITE
La cantidad exacta de instrucciones disponibles para manejar transacciones depende del tipo de objetos y operaciones que deban ser procesadas. Procesamiento de transacciones. La estructura de una transaccin usualmente se le da el nombre de modelo de la transaccin, estas pueden ser planas (simples) o anidadas. Un aspecto muy importante en el manejo de transacciones es el mantener y aplicar algoritmos de control sobre los datos o recursos; para ese control tambin se utilizan protocolos que proporcionan confiabilidad como los siguientes:
y y y
El control de las transacciones tambin requiere de controlar la concurrencia del acceso y uso hacia el recurso que se esta manipulando, ese control de concurrencia tiene 2 objetivos: 1. Como sincronizar la ejecucin concurrente de transacciones. 2. Consistencia intratransaccin (aislamiento). Para llevar a cabo el control de concurrencia dentro de un proceso de transacciones se manejan 2 modos: Ejecucin centralizada de transacciones.
Mtodos de implantacin de transacciones. Espacio de trabajo privado. Consiste en realizar copias de los bloques que sern utilizados dentro de una transaccin de manera que se trabaje con estas copias para realizar todas las modificaciones necesarias. Todo el espacio de trabajo con la informacin que ser utilizada es contenido dentro de estas copias denominado espacio de trabajo privado. Los dems usuarios trabajarn con la copia original de los bloques pero no podrn obtener segunda copia de los mismos.
RESUMEN Las transacciones son un mecanismo que ayuda a simplificar la construccin de sistemas confiables a travs de procesos que proveen soporte uniforme para invocar y sincronizar operaciones como:
y y y y
Operaciones de comparticin de datos. Aseguramiento de la seriabilidad de las transacciones con otras. Atomicidad en su comportamiento. Recuperacin de fallas provocadas en red y nodos.
El trmino transaccin describe una secuencia de operaciones con uno o ms recursos (por ejemplo una base de datos) que transforman su estado actual en un nuevo estado de consistencia. El manejo de transacciones fue desarrollado en el campo de las operaciones financieras donde se tena 3 reglas bsicas: 1. Consistencia: Obedecer ciertas reglas. 2. Atomicidad: Debe ocurrir completo o abortar. 3. Durabilidad: Una vez iniciada una transaccin y terminada completamente no puede ser abortada. La teora de las transacciones consiste en una serie de modificaciones (transacciones) a un determinado recurso del sistema (por ejemplo una base de datos) y en donde se define un punto de inicio (Begin Tran) y un punto de terminacin que define un bloque entre el conjunto de operaciones que son realizadas. Dentro de este proceso en bloque los dems usuarios no pueden modificar nada hasta que no se presente un estado estable de los datos, esto ocasiona inconsistencia temporal y conflictos