Ch11 - Cinvestav

Download Report

Transcript Ch11 - Cinvestav

Sistemas Distribuidos

Algoritmos de Coordinación

Florentino Salazar García Cinvestav, Tamaulipas Instituto Politécnico Nacional Cd. Victoria, Tamaulipas

Introducción

O Para alcanzar sus objetivos, los Sistemas Distribuidos O cuentan con formas especificas de coordinación entre procesos. (Preprocesamiento) O O Sincronización de reloj (clock synchronization) Construcción de un árbol de expansión No son inherentes a los objetivos del negocio.

Introducción

P1 P5 P3 P4 P2 ¿Qué?

¿Cómo?

Contenido

O Se abordarán dos técnicas (tipos de algoritmos) de coordinación.

O O Elección de líder (lider election) Sincronizadores (synchronizers)

Elección de líder (Algoritmos de Elección)

O O O O

«De un conjunto determinado de procesos, uno es elegido como líder, y le son asignadas responsabilidades especiales necesarias para los demás procesos del sistema.»

Cada proceso activo,

P,

tiene un identificador,

i

(prioridad), en el Sistema Distribuido.

El líder será el proceso con la mayor prioridad.

El líder es siempre el centro de control.

P1 P2 P4 Elección Pi P3 O El objetivo del algoritmo de elección: O asegurar que cuando se comience una elección, se concluya con que todos los procesos están de acuerdo en cuál es el nuevo líder.

Ejemplo: DBMS centralizado.

Elección de un nuevo líder

P1 P3 P2 Elección

Elección de líder != Exclusión mutua

O O Similitud O Interés: Elegir a uno de los procesos como privilegiado (cualquier proceso que entre a la sección crítica).

Diferencias O O O EM; Los algoritmos trabajan en ausencia de fallos. EL: Es lo que inicia una nueva elección.

El problema de «Starvation» es irrelevante en EL.

EL; no requiere que el proceso líder salga de la sección crítica. Contrario a EM.

O EL; el líder debe informar a cada proceso activo sobre su identidad, lo cual no es un problema en EM.

Algoritmo Bully (matón) (García-Molina)

O O O O Trabaja en una red completamente conectada.

Los enlaces de comunicación están libres de fallos.

Los procesos pueden fallar solamente si se detienen (o se caen) (only by stopping).

Las fallas pueden ser detectadas mediante el uso de timeout.

Algoritmo Bully (matón) (García-Molina)

O El algoritmo usa 3 diferentes tipos de mensaje: O O O

«election»

: Un proceso inicia una elección con este mensaje.

(«¿Puedo ser el líder?»). «reply»

: Es una respuesta al mensaje de elección. (

«No, no puedes ser el líder»

).

«leader»

: Un proceso envía este mensaje cuando cree ser el nuevo líder.

1.

2.

3.

4.

Algoritmo Bully (matón) (García-Molina)

Cualquier proceso, después de detectar una falla del líder, solicita ser el nuevo líder enviando un mensaje

«election»

a cada proceso con un identificador mayor.

Si cualquier proceso con identificador mayor responde un

«reply»

, entonces el proceso solicitante desiste. Espera un

«leader» («Soy el lider»)

por parte de un proceso con un identificador mayor.

« Si ningún proceso con identificador mayor responde con un

reply» al entonces el proceso i se elije líder y envía un mensaje

«leader» mensaje «election»

enviado por el proceso i, a cada proceso en el sistema.

Si el proceso i recibió un recibe un

«leader»

reinicia la elección.

«reply»

a su mensaje

«election»

y no en un periodo predeterminado (timeout), entonces el proceso i deduce que el proceso ganador falló y

Complejidad del algoritmo Bully

𝑂 𝑛 3

Topología de anillo (Maxima Finding on a Ring)

O O El problema ahora se reduce a eficientar la búsqueda del proceso con el identificador (único) mínimo o máximo, según convenga.

A diferencia del algoritmo Bully, los siguientes algoritmos no requieren de un grafo completamente conectado.

1.

2.

3.

4.

5.

Algoritmo Chang-Roberts (Fase 1)

Se asume una topología de anillo unidireccional (izquierda).

Inicialmente, todos los procesos son «no participante».

Si un proceso detecta una falla del líder actual, inicia una elección. Envía un mensaje de elección con su ID a su vecino izquierdo.

Cada vez que un proceso envía o pasa un mensaje de elección, éste se marca como «participante».

1.

Cuando un proceso recibe un mensaje de elección, compara el ID en el mensaje con el suyo: Si el identificador en el mensaje es mayor, el proceso sólo lo pasa a su vecino izquierdo.

2.

3.

4.

Si el identificador en el mensaje es menor, y el proceso aún no es «participante», éste reemplaza el ID del mensaje por el suyo y lo envía a su vecino izquierdo.

Si el identificador en el mensaje es menor, y el proceso ya es «participante», éste descarta el mensaje de elección.

Si el ID en el mensaje es igual al del proceso que lo recibe, ese proceso comienza a actuar como el líder.

Algoritmo Chang-Roberts (Fase 2)

O 1.

2.

3.

Cuando un proceso inicia a actuar como el líder, éste inicia la segunda fase del algoritmo.

El líder se marca como «No Participante» y envía un mensaje «elected» a su vecino izquierdo, indicando su elección y su ID.

Cuando un proceso recibe un mensaje «elected», se marca como «no participante», almacena el ID del proceso líder y pasa mensaje «elected» tal cual lo recibió.

Cuando el mensaje «elected» alcanza al nuevo proceso líder, éste lo descarta, y la elección termina.

Complejidad Chang-Roberts Vs Bully

Bully: 𝑂 𝑛 3 Chang-Roberts: 𝑂 𝑛 2

Algoritmo de Franklin

O O O O O O Trabaja en un anillo bidireccional.

Complejidad de mensaje menor que la de Chang-Roberts.

Procesos con identificadores únicos están organizados en un orden arbitrario en el anillo.

Cada proceso puede ser,

rojo

o

negro.

Inicialmente cada proceso es rojo.

El algoritmo es síncrono y trabaja en rounds.

Algoritmo de Franklin

1.

2.

Cada proceso rojo envía un mensaje con su ID a sus dos vecinos y 1.

2.

Examina los mensajes que le fueron enviados por sus vecinos.

Si el proceso i recibe un mensaje con un ID mayor que el suyo, i abandona la competencia y se vuelve negro. (sólo pasará mensajes).

El algoritmo termina cuando sólo hay un proceso rojo en todo el sistema, el nuevo líder.

Complejidad Chang-Roberts Vs Bully Vs Franklin

Bully: 𝑂 𝑛 3 Chang-Roberts: 𝑂 𝑛 2 Franklin: 𝑂 𝑛 log 𝑛

Round 0 Round 1

Algoritmo de Franklin

P0 P5 P7 P7 P7 P6 P2 P2 P2 P1 P1 P1 P9 P9 P9 Nuevo líder: P9 P3 Pi

Sincronizadores (Synchronizers)

O O Modelos asíncronos: difícil de tratar en aplicaciones reales. (ej., Ex. Mutua, Hilos).

Es más simple escribir algoritmos en modelo de procesado síncrono. (lock-step synchrony).

O Es más fácil probar que son correctos (ej., debugging) O

Sincronizadores: transforman un modelo asíncrono en uno síncrono.

O O O O

Sincronizadores (Synchronizers)

Los algoritmos distribuidos se diseñan con mayor facilidad en una red síncrona.

El cómputo se realiza en pasos discretos, round o ticks.

En cada tick, un proceso puede; O O Realizar cálculos locales O Enviar mensajes a sus vecinos Sincronizador: protocolo que transforma un modelo asíncrono en un modelo de proceso síncrono.

O Recibir mensajes de sus vecinos Simulando los ticks en una red asíncrona.

O Las acciones del algoritmo síncrono son programadas (scheduled) para ser ejecutadas en los ticks apropiados. Sistema listo para ejecutar la versión síncrona del algoritmo distribuido.

Sincronizadores (Synchronizers)

O Sin importar como se simulen los ticks, un sincronizador debe asegurar: O

Cada mensaje envíado en tick k debe ser recibido en el tick k.

El sincronizador ABD (Asynchronous Bounded Delay)

O O O O O O Cada proceso tiene un reloj físico.

El retardo de propagación de mensaje tiene un límite superior conocido, d.

c, denota el reloj físico del proceso.

Uno o más procesos inicializan el reloj, c=0.

O Ejecutan las acciones para el tick 0, y envían una señal de start a sus vecinos.

Cada vecino despierta y cuando recibe la señal de start, inicializa su reloj en 0 y ejecuta las acciones para el tick 0.

Antes de ejecutar las acciones del tick (i+1), todos los procesos deben enviar y recibir todos los mensaje correspondientes al tick i.

Sincronizador de Awerbuch

O O O Cuando los relojes físicos no están sincronizados.

El límite superior del retardo de propagación de mensaje se desconoce.

Sincronizador a,b,g.

O Complejidad de mensaje: b < a O O Complejidad temporal: a < b g es una combinación de las anteriores.