Comunicación por grupos Alvaro Ospina Sanjuan [email protected] Comunicación por grupos Definiciones y características Técnicas de envío Cerrados vs Abiertos Jerárquicos vs par a par Membresía Direccionamiento Atomicidad Ordenamiento Excalabilidad Sincronía Comunicación por grupos Una hipótesis subyacente e intrínseca de RPC es que la comunicación solo es entre dos partes: el cliente y el servidor Un grupo es una colección de procesos que actúan juntos en cierto sistema o alguna forma determinada por el usuario Existen varias alternativas para lograrla Comunicación por grupos Características Los grupos son dinámicos: Se pueden crear y destruir. Un proceso se puede unir a un grupo o dejar a otro. Un proceso puede ser miembro de varios grupos a la vez. La transparencia es su principal objetivo Implantación Depende en gran medida del hardware En ciertas redes es posible crear una dirección especial de red a la que pueden escuchar varias máquinas: multitransmisión Las redes que no soportan multitransmisión operan con transmisión simple transmisión por parte del emisor de paquetes individuales a cada uno de Técnicas de envío Multicasting E X Dirección especial de red a la que escuchan diferentes procesos. Cuando se envía un mensaje a esta dirección, se entrega a todos los procesos Técnicas de envío Broadcasting E Muy ruidoso en la red Técnicas de envío Unicasting E Conexión punto a punto. Muy ineficiente Se pierde la transparencia Grupos cerrados vs abiertos Grupos cerrados Solo los miembros del grupo pueden enviar hacia el grupo. Los extraños no pueden enviar mensajes al grupo como un todo, pero pueden enviar mensajes a miembros del grupo en lo individual. Procesamiento paralelo En los grupos abiertos Cualquier proceso del sistema puede enviar a cualquier grupo. Servidores duplicados Grupos cerrados vs abiertos E Jerárquicos vs par a par Coordinador Grupo Igualitario Trabajador Grupo Jerárquico Jerárquicos vs par a par Grupo par a par (igualitario) Es simétrico y no tiene punto de falla (bueno) Toma de decisiones es más difícil Grupo jerárquico el dejar todo en un solo proceso aumenta el riesgo cuando hay una falla, pero mientras se mantenga en ejecución, puede tomar decisiones sin molestar al resto Ej: un juego de ajedrez en paralelo. Cada trabajador recibe un tablero del coordinador para su solución Membresía La comunicación en grupo requiere cierto método para: Creación y eliminación de grupos. Unión y separación de procesos a grupos. Opciones Servidor de grupos Administración distribuida Membresía - Opciones oceso que quiere vincularse al grupo Proceso que quiere vincularse al grupo -- -- ------ ------ - -- - - ---- Tabla de procesos Membresía - Opciones Servidor de grupos Eficiente Fácil de implementar Punto único de fallo Administración distribuida Un proceso extraño envía un mensaje de vinculación Al salir del grupo también debe comunicarlo Membresía - Problemas Fallas de un proceso No hay aviso de la salida Descubrimiento por experimentación Sincronización a la entrada y salida Para empezar a recibir (o dejar de recibir) mensajes Mensaje a todo el grupo Fallo masivo Reconstrucción del grupo Un proceso debe tomar la iniciativa y avisarlo para que ningún otro lo haga Direccionamiento Proceso envía mensaje a una dirección de grupo y éste es entregado a todos los miembros, (el cómo se entrega es transparente al emisor). Para poder realizarlo es necesario contar con una forma de designar al grupo. Existen tres métodos para llevarlo a cabo Designar una dirección única Lista explícita Predicado de direccionamiento Direccionamiento – Método 1 Asignar a cada grupo una dirección única como si se tratara de un proceso Multicast La dirección del grupo es la dir de multicas 0 1 2 3 4 Direccionamiento – Método 1 Asignar a cada grupo una dirección única como si se tratara de un proceso Broadcast Todos reciben el mensaje. Solo el destinatario se lo queda 0 1 2 3 4 Direccionamiento – Método 1 Asignar a cada grupo una dirección única como si se tratara de un proceso Unicast El emisor envía un mensaje punto a punto Debe conocer los miembros del grupo 0 1 2 3 4 Direccionamiento – Método 2 Lista explicativa Obligar al emisor a proporcionar una lista explícita de todos sus destinatarios Ej: lista de direcciones IP. primitiva send( ): parámetro destino apunta a una lista de direcciones Desventaja: No es transparente Si miembros grupos cambian los procesos deben actualizar lista Direccionamiento – Método 3 Predicado de direccionamiento: cada mensaje es enviado a todos los miembros del grupo. El mensaje incluye un predicado, (expresión boolena), a evaluar Si predicado = verdad entonces mensaje es aceptado Sino mensaje es descartado Ejemplo:mensaje enviado a máquina con 512MB de memoria Atomicidad Esta propiedad de “todo o nada” en la entrega se llama atomicidad o transmisión atómica. Facilita la programación de los sistemas distribuidos. Es de gran importancia para garantizar la consistencia de las bases de datos y de los archivos distribuidos y duplicados Unica forma de asegurar atomicidad es que todas las máquinas envíen un acknowledge del mensaje recibido Atomicidad – Algoritmo simple Emisor envía mensaje a todos los miembros del grupo Se establecen timers y las retransmisiones necesarias son realizadas Cuando proceso recibe mensaje, si este no ha visto antes el mensaje lo envía al resto del grupo, (también con timers y retransmisiones) Si ya ha visto el mensaje el mensaje es descartado Sin importar el número de máquinas caídas, o cuantos paquetes se perdieron, eventualmente los procesos sobrevivientes recibirán el mensaje Atomicidad – Joseph-Birman Demuestra la posibilidad de la transmisión atómica. El emisor comienza con el envío de un mensaje a todos los miembros del grupo. Los cronómetros se activan y se envían las retransmisiones en los casos necesarios. Cuando un proceso recibe un mensaje: Si no recibió ya este mensaje particular: Lo envía a todos los miembros del grupo: Con cronómetros y retransmisiones en los casos necesarios. Si ya recibió este mensaje particular: No se efectúan envíos y el mensaje se descarta Ordenamiento Son necesarias dos propiedades que la comunicación en grupo sea fácil de comprender y utilizar transmisión atómica ordenamiento de mensajes Ejemplo cinco máquinas, cada una con un proceso procesos 0,1,3 y 4 pertenecen al mismo grupo en forma simultanea los procesos 0 y 4 desean enviar un mensaje al grupo modo comunicación: unidireccional cada proceso debe enviar tres mensajes independientes p0 envia a p1, p3 y p4 p3 envía a p0, p1 y p3 Ordenamiento - Problema El problema es que cuando dos procesos contienden por el acceso a una LAN, el orden de envío de los mensajes no es determinista Para 1 1 Para 0 0 Para 3 Para 1 4 2 0 1 2 3 3 4 4 5 Para 3 Para 4 Los tres mensajes enviados por procesos 0 y 4 son intercalados en el tiempo Representación gráfica de los seis mensajes, mostrando el tiempo de llegada Ordenamiento - Propuestas Ordenamiento con respecto al tiempo global entrega inmediata de todos los mensajes, en el orden en que fueron enviados si p0 envía mensaje A y después p4 envía mensaje B, el sistema debe entregar en primer lugar A a todos los miembros del grupo y después entregar B a todos los miembros del grupo Ordenamiento - Propuestas Ordenamiento tiempo absoluto no siempre es fácil de implementar se cuanta con distintas variantes moderadas ordenamiento consistente si dos mensajes A y B se envían muy cercanos al tiempo, el sistema elige uno de ellos como el “primero”, seguido por el otro concepto muy cercano de los relojes lógicos de Lamport Translapamiento de grupos Grupo 1 Grupo 2 1 B 2 A D 4 C 3 Translapamiento de grupos Un proceso puede ser parte de varios grupos Cada uno de los procesos “A” y “D” decide de manera simultánea enviar un mensaje a sus grupos respectivos. El sistema utiliza el ordenamiento con respecto al tiempo global dentro de cada grupo. Se utiliza la unitransmisión. Escalabilidad Varios algoritmos funcionan bien mientras los grupos tengan unos cuantos miembros grupos con decenas, centenas o miles de miembros por grupo que pasa en el caso de miles de grupos que ocurre si los grupos están diseminados en varios continentes que pasa si el sistema es tan grande que no cabe en una LAN, de modo que se necesiten varias LAN y gateways La presencia de gateways puede afectar muchas propiedades de la implementación. Translapamiento de grupos El orden de los mensajes es el siguiente: “A” a “B”; “D” a “B”; “D” a “C” y “A” a “C”. Se da la situación de que dos procesos, “B” y “C”, reciben los mensajes en un orden distinto. El problema es que no hay coordinación entre varios grupos Dificil implantar un orden, aunque no siempre es necesario