Comunicación ordenada y confiable

Maestría en Ciencias Computacionales

Irving N. Llamas Covarrubias

TC4003 - Octubre 2017

HECTOR GARCIA-MOLINA, ANNEMARIE SPAUSTER

August 1991

Agenda

  1. Contexto
  2. El problema
  3. Soluciones existentes
  4. Solución propuesta
  5. Rendimiento
  6. Fiabilidad y grupos multicast dinámicos
  7. Conclusiones

1. Contexto

Grupo multicast

Colección de procesos que son el destino de la misma secuencia de mensajes.

Mensajes se pueden originar en uno o mas sitios, y el destino puede ser uno o más sitios, no necesariamente distintos.

Los grupos multicast se pueden traslapar

Protocolo multicast

Responsable de entregar mensajes a los procesos apropiados.

Algunas aplicaciones requieren que el protocolo garantice el orden en el que los paquetes son entregados.

Propósito de la investigación

Orden de grupos múltiples:

Propiedad que garantiza que dos mensajes destinados a dos procesos son entregados en el mismo orden relativo, incluso si se originan de diferentes fuentes y están dirigidos a diferentes grupos multicast.

Se presenta protocolo

Propagation Graph Algorithm 

Resuelve problema de ordenamiento de grupos múltiples.

2. El problema

Comunicación de un grupo multicast

Propiedades de un protocolo multicast

Si los mensajes m1 y m2 se originan desde el mismo sitio, y están dirigidos al mismo grupo multicast. Entonces, todos los procesos destino obtienen el mismo orden relativo.

A)Ordenación de origen único

Propiedades de un protocolo multicast

Si los mensajes m1 y m2 están dirgidos al mismo grupo multicast. Entonces, todos los procesos destino obtienen el mismo orden relativo (Incluso si vienen de diferentes origenes).

B)Ordenación de origen múltiple

Propiedades de un protocolo multicast

Si los mensajes m1 y m2 se entregan a dos procesos, se entregan en el mismo orden relativo.(Incluso si vienen de diferentes fuentes y están dirigidos a grupos multicast diferentes pero superpuestos).

C)Ordenación de grupo múltiple

Ejemplo 1

Computadora principal

Computadora respaldo

Sucursales

B) Transacciones deben ejecutarse en el mismo orden en las computadoras principales, o el estado de la base de datos será diferente.

Ejemplo 2

Computadora principal

Computadora respaldo

Sucursales

C) Aunque están involucrados dos grupos multicast separados. Sigue siendo importante procesar todos los mensajes en el mismo orden en las máquinas en la intersección de los grupos.

Máquinas desarrollo

3. Soluciones existentes

Garantizar la propiedad A de un protocolo multicast es relativamente simple.

La aplicación de múltiples fuentes y propiedades de grupo es más difícil.(B y C)

Timestamp

A

B

C

D

E

F

X

Y

Z

Cuando el sitio C recibe m1 no puede entregarlo inmediatamente a su proceso destino. Primero debe descubrir de todas las fuentes potenciales, si existen mensajes con marcas de tiempo más pequeñas.

 

Solo cuando un sitio está seguro de que un mensaje tiene la marca de tiempo más pequeña de cualquier mensaje no entregado, lo entrega.

Figura1

Two-Phase commit

  1. El remitente envía el mensaje a todos los destinos del grupo multicast.
  2. Cada receptor le da su propio número de prioridad. El cuál es un número único en el sistema más alto que cualquiera dado hasta ahora para ese proceso.
  3. Mensaje se marca como "no entregable" y se coloca en la cola.
  4. Cada receptor devuelve el número asignado al remitente.
  5. El remitente selecciona el número más alto que recibió y lo envía a los receptores, los cuáles reemplazan el original por el nuevo que se recibio, y lo marcan como "entregable".
  6. Cada receptor reordena la cola.
  7. Cuando un mensaje está en la parte delantera de la cola y esta marcado como "entregable", se entrega.

Nota: Cada sitio mantiene una cola de prioridad por proceso.

Birman y Joseph

Central site

Los dos enfoques anteriores son completamente distribuidos y pueden tener importantes gastos de mensajes.

Para reducir costo de sincronización. Todos las fuentes transmiten a un sitio central, el cuál asigna una secuencia de números a los mensajes y los reenvía a los sitios de destino.

El sitio central se identifica con un tóken, y con el tiempo, este tóken circula a través del sistema.

Chang y Maxemchuk

4. Solución propuesta

La investigación propone una nueva solución para garantizar la propiedad C. Para ello se expone el Propagation Graph Algorithm

Se sume que la red y los nodos no fallarán

Algoritmo inspirado en el de Chang and Maxemchuk 

En lugar de ordenar todos los mensajes en un sitio central, se ordenan como una colección de nodos estructurados en un grafo de propagación de mensajes(En un bosque). En donde cada nodo en el grafo representa una computadora.

El grafo indica las rutas que los mensajes deben seguir para llegar a todos sus destinos.

En lugar de enviar los mensajes a los destinos y luego ordenarlos. Los mensajes se propagan a través de una serie de sitios que los ordenan en el camino mediante la unión de mensajes destinados a diferentes grupos.

Cuando un sitio recibe un mensaje, se entera de inmediato cuál es el orden que le pertenece y espera los mensajes anteriores antes de entregarlo al proceso destino. La idea clave es usar los sitios que esán en las intersecciones de los grupos de multidifusión como los nodos intermedios.

A

B

C

D

E

F

X

Y

Z

+

Figura2

Todos los sitios entregan sus mensajes en el orden definido por el sitio C. 

El sitio C envia los mensajes que corresponden a alfa{A,B} y los que corresponden a beta{E,F}. Por último los mensajes unidos de alfa y beta a {D}.

El algoritmo de propagación que se propone tiene 2 componentes:

  1. El generador de grafo de propagación (PG) 
  2. El protocolo de paso de mensajes (MP) 

Por simplicidad se asume que un sitio corre el generador PG y transmite el resultado a los otros sitios.

Una ves que un sitio conoce el grafo, utiliza el protocolo MP para enviar,recibir, prograpar y reenviar mensajes.

Terminología:

Fuente: Sitio que origina el mensaje para el grupo multicast.

Grupo de destino: Grupo que recibira los mensajes.

Destino principal: Cuando la fuente envía un mensaje a un sitio del grupo multicast(Incluso puede ser la misma fuente).

A

B

C

D

E

F

G

H

J

Figura3

Un ejemplo mas complicado, con 9 sitios (A,B,C,D,E,F,G,H,J) y 8 grupos de destino:

1 = {C,D}

2 = {A,B,C}

3 = {B,C,D,E}

4 = {D,E,F}

5 = {E,F}

6 = {B,G}

7 = {C,H}

8 = {D,J}

Nota: Los mensajes no fluyen necesariamente hacia la parte baja del árbol. Por ejemplo G solo recibe los mensajes del grupo 6.

Garantiza

Generador PG

Propiedades

  1. Propiedad C de un protocolo multicast.
  2. Si x pertenece al grupo alfa, entonces x toma todos los mensaje destinados a alfa.

(PG1) Para cada grupo alfa existe un solo destino primario p.

(PG2) Para cada sitio x que pertenece a alfa, existe un único camino de p a x.

Propiedades opcionales

(PG3) El destino primario de un grupo alfa es miembro de alfa.

(PG4) Sea p el destino primario de alfa y x otro sitio en alfa. Entonces, los nodos en el camino de p a x son todos miembros de alfa.

El generador PG garantiza la propiedad PG3, pero desafortunadamente algunas veces genera un nodo extra.

Un nodo extra es, cuando existe un nodo a en la ruta de p a x donde a no es parte de alfa.

Generador PG

* El generador PG selecciona el sitio con el número más grande de grupos (D en nuestro ejemplo) y lo convierte en la raíz. Esta heurística ayuda a mantener cortos los árboles en el bosque.

* Se llaman grupos a los que pertenece la raíz, grupos raíz a los otros sitios en los grupos raíz intersecters . La raíz es entonces el destino primario para todos los grupos raíz.  

 

main (”)
begin
    groups = the set of multicast groups;
    sites = the set of sites;
    unmarked–groups = groupsr;
    unmarked–sites = sites;
    while unmarked–groups( )
    {
        root = s | s occurs most frequently in unmarked–groups;
        new–subtree(root);
    }
end

new–subtree(current–subroot)
begin
    intersecters = emptySet;
    /* Marque el sitio desde que se colocó en el bosque. */
    mark–site (current–subroot);
    /* Determine los sitios que están en los grupos con la subraíz. */
    for each s isIn unmarked-sites
        if Some(g) isIn unmarked–groups such that (s inIn g ^ current–subroot isIn g)
        then
        intersecters = intersecters U s;
    /* Marque todos los grupos que contienen la subraíz ya que ahora tenemos un destino principal para ellos.*/
    for each g isIn unmarked-groups
        if current–subroot isIn g
        then
        mark–group( g );
        /* Particiona grupos para que ningún grupo en una partición instersecte un grupo en otra partición 
       y algún sitio en algún grupo de cada partición, se incluye un grupo con la sub-raíz(Esta en intersecters)*/
        G = {g | g isIn unmarked-groups ^ some(s) isIn g such that s isIn intersecters};
        repeat
            S = {s | some(g) isIn G such that s isIn g}
            G = G U {g | g isIn unmarked-groups V some(s) isIn G such that s isIn S}
        until no change to G
        P1, . . . Pk = partition of G so that no group in a partition intersects a group in another partition;
        /*Si s está en un grupo de la raíz pero no es parte de una partición, se convierte en hijo.*/
        for each s isIn intersecters
            if s is not in P_l
            current-subroot = s; /*makes a child ofcurrent-subroot*/
            /*Determina un hijo para cada partición*/
        for i:= 1 to k
            newsite = s | s occurs most frequently in P_l ^ s isIn intersecters;
            current–subroot = newsite; /* make newsite a child of current–site */
            new–subtree (newsite);
end

mark–site(s)
begin
    unmarked–sites = unmarked–sites – s;
end;

mark–group(g)
begin
    unmarked–groups = unmarked–groups – g;
end;

Generador PG

*En el ejemplo para P1 b y c ocurren en la mayoría de todos los grupos, entonces arbitrariamente se eleige c sobre b. Arbitrariamente también se toma e sobre f. En algunos casos existirán sitios que son intersecters pero no ocurren en ninguna partición, como en este caso j, entonces automáticamente se convierten en hijos de la raíz.

 

*Para generar el siguiente nivel se llama new_sub-tree para cada hijo, con el hijo como parámetro.

 

(A,B,G,H)

C

D

E

F

J

Figura4

Protocolo MP

El grafo de propagación especifíca el flujo de los mensajes en la red. El destino principal para cada grupo multicast es el más cercano a la raíz.

El protocolo requiere que cada sitio mantenga una numeros de secuencia para cada sitio al cuál envía mensajes, como se determino en el grafo de propagación. Esto garantiza que el receptor puede ordernar los mensajes del emisor correctamente en caso de que lleguen en desorden. Esto igual ayuda s la dectección de pérdida de mensajes. ACK no son requeridos por el protocolo. Null y timeouts son usados para detección de fallos.

En cada sitio se mantienen dos colas, una cola para mensajes destinados a un proceso local y una cola de espera para mensajes que llegan fuera de secuencia.

5. Rendimiento

El rendimiento es una medida crucial para la practicidad del algoritmo de propagación. Aqui se comparará con el de two-phase de Birman y Joseph y con el estrictamente centralizado de Chang y Maxemchuck.

Redes tipo ARPANET. Una sola fuente envía el mismo mensaje a n sitios. Se envían n mensajes, uno para cada receptor.

Modelo Punto a punto

two-phase Centralizado Propagación
N 3n n n + e
D 3L+(2n+1)P 2L+nP (d+1)L+(n+e)P

N: Número mensajes requeridos para enviar al grupo multicast.

D: Tiempo transcurrido entre el comienzo de la difusión, y la finalización de la misma.

d: Profundidad esperada

L: Latencia

P: Procesamiento

e: Nodos extra

n:Número de mensajes

Modelo Punto a punto

Tamaño de grupo 5.

200 sitios en el sistema

Tamaño de grupo 5.

Modelo Punto a punto

Tamaño de grupo 5.

200 sitios en el sistema

Modelo Broadcast

Redes tipo Ethernet. Un mensaje enviado por una fuente es transmitido a todos los sitios en la red a la vez.

two-phase Centralizado Propagación
N n+2 2 d+1
D (n+2)T 2T (d+1)T

T: Demora que consiste en

Tiempo para que el remitente coloque el mensaje en la red

+Tiempo para que el mensaje llegue a los otros sitios

+Tiempo para que cada sitio determine si es miembro del grupo destino.

d: Profundidad esperada

n:Número de mensajes

6. Confiabilidad y grupos multicast dinámicos

El algoritmo expuesto es correcto cuando no existen fallos y el grupo multicast es estático. Sin embargo es necesario considerar las fallas de los sitios y de la red. 

Se desarrollo un modelo para el problema de confiabilidad en el algoritmo. En el cuál se menciona que no se consideran fallas bizantinas y se asumen que los relojes son sincronizados. Además el modelo puede ser confiable en varios grados.

Confiabilidad

La fiabilidad de un protocolo puede caracterizarse por sus propiedades P,Q,R.

Confiabilidad

P: Garantía en la entrega de un multicast en algunos miembros del grupo de destino.

Q: Garantía sobre la atomicidad de la entrega entre los miembros del grupo.

R: Interacción entre la confiabilidad y el orden.

Confiabilidad en PG

P: Sea m un mensaje multicast por s. Sea r el tiempo que el sitio s envia m a a(la raíz), como parte del protocolo. Existe una constante delta tal que si a y s están activos de un periódo X a X + delta y a y s pueden comunicarse de tiempo X al tiempo X + delta, para algunos X >= t, entonces a entrega m con X + delta.

Confiabilidad en PG

Q: Sean m los mensajes multicast por s y digamos que m ha sido enviado a un miembro del grupo a. Si el padre de b p(b) entrega m en tiempo alfa, entonces existe una p tal que si b y p(b) pueden comunicarse desde el tiempo X al tiempo X + p, por algun X >= alfa, entonces b entrega m en el tiempo X + p.

Confiabilidad en PG

R: No hay 2 sitios que entreguen mensajes en ordenes incoherentes. Llamamos a esto garantía totalmente consistente porque la orden se aplica estrictamente a todos los destinos. Tal condición requiere bloquear la propagación de mensajes en el árbol cuando falla un sitio que no es hoja.

Grupos dinámicos

La reorganización del árbol no solo resulta de fallas. Algunas veces simplemente se quieren agregar nuevos sitios a los grupos o eliminar sitios de grupos.

Una falla puede ocurrir en medio de la reorganización de los árboles. Sitios ya sea en el árbol viejo o en el nuevo detectarán la falla de un padre e informaran a la raíz anterior.

7. Conclusiones

Positivo

En la mayoría de los casos es superior al algoritmo two-phase en término de número de mensajes.

Elimina el problema de cuello de botella que se origina en el centralizado.

Proporciona flexibilidad al permitir diferentes grafos para el mismo conjunto de grupos para adaptarse a los requisitos de la red o aplicación.

Negativo

El costo de configuración del grafo de propagación, por lo tanto, la técnica debe usarse para streams multicast que son de larga duración.

Algunas veces los sitios requieren manejar mensajes que no necesitan entregar localmente. Estos nodos extra, no ocurren con frecuencia de acuerdo a los experimentos realizados.

Bibliografía

Ordered and reliable multicast communication. Hector Garcia-Molina, AnneMarie Spauster.

Aug. 1991

Comunicación ordenada y confiable

By Irving Norehem Llamas Covarrubias