Articulo de referencia

Protocolo de chismes

Un protocolo de chismes o protocolo epidémico es un procedimiento o proceso de comunicación entre pares de computadoras que se basa en la forma en que se propagan las epidemias ...

Un protocolo de chismes o protocolo epidémico es un procedimiento o proceso de comunicación entre pares de computadoras que se basa en la forma en que se propagan las epidemias . [ 1 ] Algunos sistemas distribuidos utilizan el chisme entre pares para asegurar que los datos se difundan a todos los miembros de un grupo. Algunas redes ad hoc no tienen un registro central y la única forma de difundir datos comunes es que cada miembro los transmita a sus vecinos.

Comunicación

El concepto de comunicación por chismes se puede ilustrar con la analogía de los oficinistas que difunden rumores. Digamos que cada hora se reúnen alrededor del dispensador de agua. Cada empleado se empareja con otro, elegido al azar, y comparte el último chisme. Al comienzo del día, Dave inicia un nuevo rumor: le comenta a Bob que cree que Charlie se tiñe el bigote. En la siguiente reunión, Bob se lo cuenta a Alice, mientras que Dave repite la idea a Eve. Después de cada encuentro en el dispensador de agua, el número de personas que han escuchado el rumor se duplica aproximadamente (aunque esto no tiene en cuenta el chismeo repetido a la misma persona; tal vez Dave intenta contarle la historia a Frank, solo para descubrir que Frank ya la escuchó de Alice). Los sistemas informáticos suelen implementar este tipo de protocolo con una forma de "selección aleatoria entre pares": con una frecuencia determinada, cada máquina elige otra máquina al azar y comparte los rumores.

Variantes y estilos

Probablemente existan cientos de variantes de protocolos específicos similares a los chismes, ya que es probable que cada escenario de uso se adapte a las necesidades específicas de la organización.

Por ejemplo, un protocolo de chismes podría emplear algunas de estas ideas:

  • El núcleo del protocolo implica interacciones periódicas, por pares, entre procesos.
  • La información que se intercambia durante estas interacciones tiene un tamaño limitado.
  • Cuando los agentes interactúan, el estado de al menos uno de ellos cambia para reflejar el estado del otro.
  • No se da por sentada una comunicación fiable.
  • La frecuencia de las interacciones es baja en comparación con las latencias típicas de los mensajes, por lo que los costes del protocolo son insignificantes.
  • Existe cierto grado de aleatoriedad en la selección de pares. Los pares pueden seleccionarse del conjunto completo de nodos o de un conjunto más pequeño de vecinos .
  • Debido a la replicación, existe una redundancia implícita en la información entregada.

Tipos de protocolo

Es útil distinguir dos estilos predominantes de protocolo de chismes: [ 2 ]

  • Protocolos de difusión (o protocolos de propagación de rumores). Estos utilizan el chisme para difundir información; básicamente funcionan inundando la red con agentes, pero de una manera que produce cargas máximas limitadas:
    1. Los protocolos de difusión de eventos utilizan el sistema de comunicación por intercambio de mensajes (gossip) para realizar multidifusión . Estos protocolos informan sobre los eventos, pero el intercambio de mensajes se produce periódicamente y los eventos no lo activan directamente. Una preocupación es la posible alta latencia entre el momento en que ocurre el evento y su entrega.
    2. Los protocolos de difusión de datos en segundo plano intercambian información constantemente sobre los nodos participantes. Por lo general, la latencia de propagación no es un problema, quizás porque la información en cuestión cambia lentamente o porque no hay una penalización significativa por actuar sobre datos ligeramente desactualizados.
  • Protocolos que calculan agregados . Estos calculan un agregado de toda la red muestreando información en los nodos de la red y combinando los valores para llegar a un valor de todo el sistema: el valor más grande para algunos nodos de medición que están haciendo. El requisito clave es que el agregado debe ser computable mediante intercambios de información por pares de tamaño fijo; estos generalmente terminan después de una cantidad de rondas de intercambio de información logarítmica en el tamaño del sistema, momento en el cual se habrá establecido un patrón de flujo de información de todos a todos. Como efecto secundario de la agregación, es posible resolver otros tipos de problemas usando gossip; por ejemplo, hay protocolos gossip que pueden organizar los nodos en una superposición gossip en una lista ordenada por nodo-id (u algún otro atributo) en tiempo logarítmico usando intercambios de información de estilo agregación. De manera similar, hay algoritmos gossip que organizan los nodos en un árbol y calculan agregados como "suma" o "conteo" mediante gossip en un patrón sesgado para coincidir con la estructura del árbol.

Muchos protocolos anteriores al primer uso del término "gossip" se ajustan a esta definición bastante amplia. Por ejemplo, los protocolos de enrutamiento de Internet suelen utilizar intercambios de información similares a los de gossip. Un sustrato gossip puede utilizarse para implementar una red enrutada estándar: los nodos "comparten" información sobre mensajes punto a punto tradicionales, dirigiendo el tráfico a través de la capa gossip. Si el ancho de banda lo permite, esto implica que un sistema gossip puede potencialmente admitir cualquier protocolo clásico o implementar cualquier servicio distribuido clásico. Sin embargo, rara vez se pretende una interpretación tan amplia. Lo más habitual es que los protocolos gossip se ejecuten de forma regular, periódica, relativamente perezosa, simétrica y descentralizada; el alto grado de simetría entre los nodos es particularmente característico. Por lo tanto, si bien se podría ejecutar un protocolo de confirmación de dos fases sobre un sustrato gossip, hacerlo iría en contra del espíritu, si no de la redacción, de la definición.

El término "consistente convergente" se utiliza a veces para describir protocolos que logran una propagación exponencialmente rápida de la información. Para ello, un protocolo debe propagar cualquier información nueva a todos los nodos que se verán afectados por ella en un tiempo logarítmico con respecto al tamaño del sistema (el "tiempo de mezcla" debe ser logarítmico con respecto al tamaño del sistema).

Ejemplos

Supongamos que queremos encontrar el objeto que mejor se ajuste a un patrón de búsqueda, dentro de una red de tamaño desconocido, pero donde los ordenadores están interconectados y donde cada máquina ejecuta un pequeño programa agente que implementa un protocolo de comunicación por intercambio de información.

  • Para iniciar la búsqueda, el usuario solicitaría al agente local que comenzara a intercambiar información sobre la cadena de búsqueda. (Suponemos que los agentes parten de una lista conocida de pares o que recuperan esta información de algún tipo de repositorio compartido).
  • Periódicamente, a una frecuencia determinada (digamos diez veces por segundo, para simplificar), cada agente elige a otro agente al azar y se comunica con él. Las cadenas de búsqueda conocidas por A ahora también serán conocidas por B, y viceversa. En la siguiente ronda de comunicación, A y B elegirán a otros agentes al azar, por ejemplo, C y D. Este fenómeno de duplicación en cada ronda hace que el protocolo sea muy robusto, incluso si se pierden algunos mensajes o si algunos de los agentes seleccionados son los mismos o ya conocen la cadena de búsqueda.
  • Al recibir una cadena de búsqueda por primera vez, cada agente comprueba en su máquina local si hay documentos coincidentes.
  • Los agentes también comentan sobre la mejor pareja hasta la fecha. Por lo tanto, si A conversa con B, después de la interacción, A conocerá las mejores parejas que B conoce, y viceversa. Las mejores parejas se difundirán por la red.

Si los mensajes pueden llegar a ser muy grandes (por ejemplo, si hay muchas búsquedas activas simultáneamente), se debería establecer un límite de tamaño. Además, las búsquedas deberían desaparecer de la red con el tiempo.

De ello se deduce que, en un tiempo logarítmico respecto al tamaño de la red (el número de agentes), cualquier nueva cadena de búsqueda habrá llegado a todos los agentes. Tras un retraso adicional de duración similar, cada agente sabrá dónde encontrar la mejor coincidencia. En concreto, el agente que inició la búsqueda habrá encontrado dicha coincidencia.

Por ejemplo, en una red con 25 000 máquinas, podemos encontrar la mejor coincidencia después de aproximadamente 30 rondas de intercambio de información: 15 para difundir la cadena de búsqueda y 15 más para descubrir la mejor coincidencia. Un intercambio de información podría ocurrir hasta una vez cada décima de segundo sin generar una carga excesiva; por lo tanto, este método de búsqueda en red podría explorar un gran centro de datos en aproximadamente tres segundos.

En este caso, las búsquedas podrían desaparecer automáticamente de la red después de, digamos, 10 segundos. Para entonces, quien inició la búsqueda ya conoce la respuesta y no tiene sentido seguir hablando de ella.

Los protocolos Gossip también se han utilizado para lograr y mantener la consistencia de bases de datos distribuidas o con otros tipos de datos en estados consistentes, contar el número de nodos en una red de tamaño desconocido, difundir noticias de forma robusta, organizar nodos de acuerdo con alguna política de estructuración, construir las llamadas redes superpuestas , calcular agregados, ordenar los nodos en una red, elegir líderes, etc.

Algoritmos epidemiológicos

Los protocolos de chismes pueden utilizarse para propagar información de forma similar a como se propaga una infección viral en una población biológica. De hecho, las matemáticas de las epidemias se utilizan a menudo para modelar las matemáticas de la comunicación por chismes. El término algoritmo epidémico se emplea a veces para describir un sistema de software que utiliza este tipo de propagación de información basada en chismes.

Véase también

  • Los protocolos Gossip son solo una clase entre muchas clases de protocolos de red. Véase también sincronización virtual , máquinas de estados distribuidas , algoritmo Paxos , transacciones de bases de datos . Cada clase contiene decenas o incluso cientos de protocolos, que difieren en sus detalles y propiedades de rendimiento, pero son similares en cuanto a las garantías que ofrecen a los usuarios.
  • Algunos protocolos de chismes reemplazan el mecanismo de selección aleatoria de pares con un esquema más determinista. Por ejemplo, en el algoritmo NeighbourCast , en lugar de comunicarse con nodos aleatorios, la información se difunde comunicándose únicamente con nodos vecinos. Existen varios algoritmos que utilizan ideas similares. Un requisito clave al diseñar dichos protocolos es que el conjunto de vecinos trace un grafo expansor .
  • Enrutamiento
  • Tribler , cliente peer-to-peer de BitTorrent que utiliza el protocolo gossip.

Referencias

  1. Demers, Alan; Greene, Dan; Hauser, Carl; Irish, Wes; Larson, John (1987). «Algoritmos epidémicos para el mantenimiento de bases de datos replicadas». Actas del sexto simposio anual de la ACM sobre principios de computación distribuida - PODC '87 . págs. 1–12 . doi : 10.1145/41840.41841 . ISBN  978-0-89791-239-6. OCLC 8876960204 . S2CID 1889203 .  
  2. Jelasity, Márk (1 de enero de 2011). «Chismes» (PDF) . En Serugendo, Giovanna Di Marzo; Gleizes, Marie-Pierre; Karageorgos, Anthony (eds.). Software autoorganizado . Serie de computación natural. Springer Berlin Heidelberg. pp. 139–162 . doi : 10.1007/978-3-642-17348-6_7 . ISBN  978-3-642-17347-9. S2CID 214970849 . 

Lecturas adicionales

  • Allavena, André; Demers, Alan; Hopcroft, John E. (2005). «Corrección de un protocolo de membresía basado en chismes». Actas del vigésimo cuarto simposio anual ACM SIGACT-SIGOPS sobre Principios de computación distribuida - PODC '05 . p.  292. doi : 10.1145/1073814.1073871 . ISBN 978-1-58113-994-5. OCLC 8876665695 . S2CID 9378092 .  
  • Birman, Kenneth P.; Hayden, Mark; Ozkasap, Oznur; Xiao, Zhen; Budiu, Mihai; Minsky, Yaron (mayo de 1999). "Multidifusión bimodal" . ACM Transactions on Computer Systems . 17 (2): 41– 88. doi : 10.1145/312203.312207 . S2CID 207744063 . 
  • Eugster, P. Th.; Guerraoui, R.; Handurukande, SB; Kouznetsov, P.; Kermarrec, A.-M. (noviembre de 2003). "Difusión probabilística ligera" (PDF) . ACM Transactions on Computer Systems . 21 (4): 341– 374. doi : 10.1145/945506.945507 . S2CID 6875620 . 
  • Gupta, Indranil; Birman, Ken; Linga, Prakash; Demers, Al; Van Renesse, Robbert (2003). "Kelips: Construyendo una DHT P2P eficiente y estable mediante el aumento de la memoria y la sobrecarga en segundo plano". Sistemas Peer-to-Peer II . Notas de clase en Ciencias de la Computación. Vol.  2735. pp. 160–169 . doi : 10.1007/978-3-540-45172-3_15 . ISBN  978-3-540-40724-9.
  • Diseño sistemático de tecnologías P2P para sistemas distribuidos. Indranil Gupta, Gestión global de datos, eds.: R. Baldoni, G. Cortese, F. Davide y A. Melpignano, 2006.
  • Leitao, Joao; Pereira, Jose; Rodrigues, Luis (2007). "HyParView: Un protocolo de membresía para difusión confiable basada en chismes". 37.ª Conferencia Internacional Anual IEEE/IFIP sobre Sistemas y Redes Confiables (DSN'07) . pp. 419–429 . doi : 10.1109/DSN.2007.56 . hdl : 1822/38895 . ISBN  978-0-7695-2855-7. S2CID 9060122 . 
  • Gupta, I.; Kermarrec, A.-M.; Ganesh, AJ (julio de 2006). "Protocolos eficientes y adaptativos de estilo epidémico para multidifusión confiable y escalable". IEEE Transactions on Parallel and Distributed Systems . 17 (7): 593– 605. doi : 10.1109/TPDS.2006.85 . S2CID 1148979 . 
  • Jelasity, Márk; Montresor, Alberto; Babaoglu, Ozalp (agosto de 2009). "T-Man: construcción rápida de topología de superposición basada en Gossip" (PDF) . Computer Networks . 53 (13): 2321– 2339. doi : 10.1016/j.comnet.2009.03.013 .
  • Leitao, Joao; Pereira, Jose; Rodrigues, Luis (2007). "Árboles de difusión epidémica". 26.º Simposio Internacional IEEE sobre Sistemas Distribuidos Confiables (SRDS 2007) . pp. 301–310 . doi : 10.1109/SRDS.2007.27 . hdl : 1822/38894 . ISBN  978-0-7695-2995-0. S2CID 7210467 . 
  • Jelasity, Márk; Montresor, Alberto; Babaoglu, Ozalp (agosto de 2005). "Agregación basada en chismes en grandes redes dinámicas" (PDF) . ACM Transactions on Computer Systems . 23 (3): 219– 252. doi : 10.1145/1082469.1082470 . S2CID 2608879 . 
  • Segmentación ordenada de redes superpuestas muy grandes. Márk Jelasity y Anne-Marie Kermarrec. IEEE P2P, 2006.
  • Topologías de superposición de superpeers con conciencia de proximidad. Gian Paolo Jesi, Alberto Montresor y Ozalp Babaoglu. IEEE Transactions on Network and Service Management, 4(2):74–83, septiembre de 2007.
  • X-BOT: un protocolo para la optimización resistente de superposiciones no estructuradas. João Leitão, João Marques, José Pereira, Luís Rodrigues. Proc. 28º Simposio internacional IEEE sobre sistemas distribuidos confiables (SRDS'09).
  • Protocolos de localización de recursos y comunicación espacial. David Kempe, Jon Kleinberg, Alan Demers. Journal of the ACM (JACM) 51: 6 (noviembre de 2004).
  • Cálculo de información agregada basado en rumores. David Kempe, Alin Dobra, Johannes Gehrke. Actas del 44.º Simposio Anual del IEEE sobre Fundamentos de la Informática (FOCS). 2003.
  • Técnicas activas y pasivas para la estimación del tamaño de grupos en sistemas distribuidos dinámicos y a gran escala. Dionysios Kostoulas, Dimitrios Psaltoulis, Indranil Gupta, Ken Birman, Al Demers. Revista Elsevier de Sistemas y Software , 2007.
  • Construye uno y obtén otro gratis: Aprovechando la coexistencia de múltiples redes superpuestas P2P. Balasubramaneyam Maniymaran, Marin Bertier y Anne-Marie Kermarrec. Actas de ICDCS , junio de 2007.
  • Conteo de pares y muestreo en redes superpuestas: métodos de paseo aleatorio. Laurent Massoulié, Erwan Le Merrer, Anne-Marie Kermarrec, Ayalvadi Ganesh. Actas del 25.º ACM PODC . Denver, 2006.
  • Chord on Demand. Alberto Montresor, Márk Jelasity y Ozalp Babaoglu. Actas de la 5ª Conferencia sobre Computación Peer-to-Peer (P2P), Constanza, Alemania, agosto de 2005.
  • Nielsen, Michael A. (2005). "Introducción a los grafos expansores" (PDF) . Michael Nielsen . S2CID 3045708. Archivado del original (PDF) el 15 de julio de 2011. 
  • Creación de redes P2P de bajo diámetro. G. Pandurangan, P. Raghavan, Eli Upfal . En Actas del 42.º Simposio sobre Fundamentos de la Informática (FOCS), 2001.
  • Van Renesse, Robbert; Birman, Kenneth P.; Vogels, Werner (mayo de 2003). "Astrolabe: una tecnología robusta y escalable para la monitorización, gestión y minería de datos de sistemas distribuidos". ACM Transactions on Computer Systems . 21 (2): 164– 206. doi : 10.1145/762483.762485 . S2CID 6204358 . 
  • Voulgaris, S.; Kermarrec, A.-M.; Massoulie, L.; Van Steen, M. (2004). «Aprovechamiento de la proximidad semántica en la búsqueda de contenido peer-to-peer». Actas del 10.º Taller Internacional IEEE sobre Tendencias Futuras de los Sistemas de Computación Distribuida, 2004. FTDCS 2004. págs. 238–243 . doi : 10.1109/FTDCS.2004.1316622 . hdl : 1871/12832 . ISBN  0-7695-2118-5. S2CID 9464168 . 
  • Gupta, Ruchir; Singh, Yatindra Nath (2015). "Agregación de reputación en redes peer-to-peer mediante algoritmo de chismes diferenciales". IEEE Transactions on Knowledge and Data Engineering . 27 (10): 2812– 2823. arXiv : 1210.4301 . doi : 10.1109/TKDE.2015.2427793 . S2CID 650473 . 
  • Bailey, Norman TJ (1957). La teoría matemática de las epidemias . Hafner. ISBN 978-0-85264-113-2.{{cite book}}: Incompatibilidad de ISBN/Fecha ( ayuda )