UNIDAD 3 TRANSACCIONES.

3.1 Procesamiento de transacciones en sistemas distribuidos.

Motivos del uso de transacciones: Los sistemas distribuidos son potencialmente muy fiables debido a la posibilidad de proveer redundancia y autonomía de recursos en diferentes nodos, esto permite detectar y localizar fallas, sin embargo comúnmente 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 vía de comunicación no siempre puede ser utilizada para proveer interacción entre 2 procesos.
3. Requerimientos de procesamiento en paralelo.
4. Manejo interactivo de uno o más usuarios

Definición 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 dependían de la consistencia de la información almacenada.


Las transacciones son un mecanismo que ayuda a simplificar la construcción de sistemas confiables a través de procesos que proveen soporte uniforme para invocar y sincronizar operaciones como:


· Operaciones de compartición de datos.

· Aseguramiento de la seriabilidad de las transacciones con otras.
· Atomicidad en su comportamiento.
· Recuperación de fallas provocadas en red y nodos.

El manejo de transacciones fue desarrollado en el campo de las operaciones financieras donde se tenía 3 reglas básicas:


· Consistencia: Obedecer ciertas reglas.

· Atomicidad: Debe ocurrir completo o abortar.
· Durabilidad: Una vez iniciada una transacción 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 múltiples usuarios de una base de datos.


3.2 Teoría de transacciones anidadas.

Consiste en una serie de modificaciones (transacciones) aun 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 terminación que define un bloque entre el conjunto de operaciones que son realizadas.

Dentro de este proceso en bloque los demás 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 transacción, este proceso reduce el rendimiento del sistema.


* Ejecutar transacciones calendarizadas. Es un sistema que permite el proceso de transacciones asignándole tiempos de procesamiento el cual permite incrementar el rendimiento del sistema ya que se ejecuta un máximo de proceso en forma concurrente y no a través de una serie.

No hay comentarios:

Publicar un comentario en la entrada