Utilización de las Transacciones

Las transacciones distribuidas abarcan dos o más servidores conocidos como administradores de recursos. La administración de la transacción debe ser coordinada entre los administradores de recursos mediante un componente de servidor llamado administrador de transacciones. Cada instancia de SQL Server Database Engine (Motor de base de datos de SQL Server) puede funcionar como administrador de recursos en las transacciones distribuidas que coordinan los administradores de transacciones, como el Coordinador de transacciones distribuidas de Microsoft (MS DTC) u otros administradores que admitan la especificación Open Group XA del procesamiento de transacciones distribuidas. Para obtener más información, consulte la documentación de MS DTC.
Una transacción de una sola instancia de Database Engine (Motor de base de datos) que abarque dos o más bases de datos es, de hecho, una transacción distribuida. La instancia administra la transacción distribuida internamente; para el usuario funciona como una transacción local.
En la aplicación, una transacción distribuida se administra de forma muy parecida a una transacción local. Al final de la transacción, la aplicación pide que se confirme o se revierta la transacción. El administrador de transacciones debe administrar una confirmación distribuida de forma diferente para reducir al mínimo el riesgo de que, si se produce un error en la red, algunos administradores de recursos realicen confirmaciones mientras los demás revierten la transacción. Esto se consigue mediante la administración del proceso de confirmación en dos fases (la fase de preparación y la fase de confirmación), que se conoce como confirmación en dos fases (2PC).
Fase de preparación
Cuando el administrador de transacciones recibe una solicitud de confirmación, envía un comando de preparación a todos los administradores de recursos implicados en la transacción. Cada administrador de recursos hace lo necesario para que la transacción sea duradera y todos los búferes que contienen imágenes del registro de la transacción se pasan a disco. A medida que cada administrador de recursos completa la fase de preparación, notifica si la preparación ha tenido éxito o no al administrador de transacciones.
Fase de confirmación
Si el administrador de transacciones recibe la notificación de que todas las preparaciones son correctas por parte de todos los administradores de recursos, envía comandos de confirmación a cada administrador de recursos. A continuación, los administradores de recursos pueden completar la confirmación. Si todos los administradores de recursos indican que la confirmación ha sido correcta, el administrador de transacciones envía una notificación de éxito a la aplicación. Si algún administrador de recursos informó de un error al realizar la preparación, el administrador de transacciones envía un comando para revertir la transacción a cada administrador de recursos e indica a la aplicación que se ha producido un error de confirmación.
Las aplicaciones de Database Engine (Motor de base de datos) pueden administrar transacciones distribuidas a través de Transact-SQL o de la API de base de datos.

8 comentarios:

  1. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  2. El objetivo principal de la asignación de procesadores, es fundamentalmente el agilizar los procesos que se ejecutan en un sistema, y de esta forma lograr que el sistema se ejecute de manera rapida y eficaz. Esto se logra cuando se dispone de un grupo de procesadores para que ejecuten los procesos de una aplicación mientras durante el tiempo que esta necesite ejecutarse. Es decir a cada actividad o proceso de la aplicación se le asigna un procesador para que este ejecute dicha actividad, y debido a que los sistemas distribuidos constan de varios procesadores para conseguir su correcto funcionamiento es necesario que ocurra una debida administración de los mismos.
    A través de la publicación realizada por mis compañeros podemos captar y entender el funcionamiento interno de un sistema distribuido.

    Eliana Vivas 17688819. Seccion # 2

    ResponderEliminar
  3. Es importante resaltar que en la asignación de procesadores influyen otros factores como los algoritmos de asignación los cuales se encargan de localizar los procesadores disponibles y dirigir las tareas pendientes hacia estos, los cuales influyen también como los principales manejadores de la comunicación dentro del sistema distribuido. Debido a que manejan la información necesaria para poder asignar actividades pendientes a procesadores desocupados, así como también es su trabajo el conocer los estados en los que se encuentran los procesadores que conforman el sistema distribuido, al igual que las actividades que estos ejecutan.

    Eliana Vivas 17688819. Seccion # 2

    ResponderEliminar
  4. Asignacion de procesadores por definicion consta de varios procesadores. esto se pueden organizar como coleccion de estaciones de trabajo personales, una pila publica de procesadores o alguna forma hibrida. en todo los casos, se necesitan cierto algoritmo para decidir cual proceso hay que ejecutar y en que maquina. Para el modelo de estaciones de trabajo, la pregunta es cuando ejecutar el proceso de manera local y cuando buscra una estacion inactiva. Para el modelo de la pila de procesadores, hay que tomar una decision por cada nuevo proceso.

    Zoraida gonzalez CI: 18266695 Seccion"02"

    ResponderEliminar
  5. En los sistemas operativos distribuidos el primer proceso en condiciones de ejecutarse será el asignado al procesador y permanece asignado hasta no poder ejecutarse más por tener que esperar a algún evento o por haber terminado.

    Round Robin
    Se establece un tiempo máximo de ejecución o cuanto y se ejecuta cada proceso hasta que exceda su cuanto o no quiera ejecutarse más, entonces se asigna otro y así sucesivamente. Los procesos en espera de ejecución forman una cola circular.

    Shortest Process Next: (El proceso más corto el próximo)
    Se ejecuta el proceso más breve de los que estén preparados, y permanece asignado hasta no poder ejecutarse más, momento en el cual se volverá a elegir el proceso más corto.

    Shortest Remaining Time: (El tiempo restante más corto)
    Se ejecuta el proceso más corto de los que estén preparados, pero a diferencia del SPN el esquema es apropiativo, de manera que siempre que surja otro proceso listo para ejecutarse se comprobará si va a tardar menos en ejecutarse que el actual y si es así será el nuevo proceso el que se asigne y el actual tendrá que esperar.

    Highest Response Ratio Next: (El de mayor tasa de respuesta el próximo)
    Para cada proceso, basado en el tiempo que va a ocupar el procesador(s) y el tiempo que lleva esperando para ocuparlo (w), Se calcula w+s/s, una vez echo esto el proceso que tenga un valor mayor será asignado al procesador. Este algoritmo es bastante bueno, por que además de dar preferencia a los procesos cortos también tiene en cuenta el envejecimiento de los procesos para evitar así la "inanición".

    Zoraida Gonzalez CI: 18266695 Seccion"02"

    ResponderEliminar
  6. Entre otras cosas, una transacción es un conjunto de tareas relacionadas que se ejecutan con éxito o dan error como una unidad. Una transacción distribuida es una transacción que afecta a varios recursos. Para que una transacción distribuida se confirme, todos los participantes deben garantizar que los cambios en los datos serán permanentes. Los cambios deben mantenerse a pesar de bloqueos del sistema u otros acontecimientos imprevistos. Si alguno de los participantes no cumple esta garantía, toda la transacción da error y se desharán los cambios en los datos en el ámbito de la transacción.

    Gladybert Moreno 18177711 Secc 2

    ResponderEliminar
  7. Asignación de Procesadores

    Son necesarios el uso de algoritmos para decidir cuál proceso hay que ejecutar y en qué máquina se va a ejecutar.
    Para el modelo de estaciones de trabajo:

    Decidir cuándo ejecutar el proceso de manera local y cuándo es necesario buscar estaciones inactivas o no locales que tienen una conexion a la misma red pero fuera de ella.
    Para el modelo de la pila de procesadores:

    Decidir dónde ejecutar cada nuevo proceso respecto de la misma maquina que es la tabla(lista) de los procesos que se crean dentro de la maquina.

    ResponderEliminar
  8. 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:

    Dificultad para mantener consistencia en los datos.
    Una misma vía de comunicación no siempre puede ser utilizada para proveer interacción entre 2 procesos.
    Requerimientos de procesamiento en paralelo.
    Manejo interactivo de uno o más usuarios

    ResponderEliminar