stringtranslate.com

Протокол сплетен

Протокол сплетен или эпидемический протокол — это процедура или процесс компьютерной пиринговой связи, основанный на способе распространения эпидемий . [1] Некоторые распределенные системы используют пиринговые сплетни, чтобы гарантировать, что данные будут распространены среди всех членов группы. Некоторые сети ad hoc не имеют центрального реестра, и единственный способ распространения общих данных — полагаться на то, что каждый член передаст их своим соседям.

Коммуникация

Концепцию сплетен можно проиллюстрировать аналогией с офисными работниками, распространяющими слухи. Допустим, каждый час офисные работники собираются у кулера. Каждый сотрудник объединяется в пару с другим, выбранным случайным образом, и делится последними сплетнями. В начале дня Дэйв запускает новый слух: он говорит Бобу, что, по его мнению, Чарли красит свои усы. На следующей встрече Боб рассказывает об этом Элис, а Дэйв повторяет эту идею Еве. После каждой встречи у кулера количество людей, которые слышали слух, примерно удваивается (хотя это не учитывает сплетни, которые дважды передаются одному и тому же человеку; возможно, Дэйв пытается рассказать историю Фрэнку, но обнаруживает, что Фрэнк уже слышал ее от Элис). Компьютерные системы обычно реализуют этот тип протокола с помощью формы случайного «выбора сверстников»: с заданной частотой каждая машина выбирает другую машину наугад и делится любыми слухами.

Варианты и стили

Вероятно, существуют сотни вариантов конкретных протоколов, подобных сплетням, поскольку каждый сценарий использования, скорее всего, будет настраиваться в соответствии с конкретными потребностями организации.

Например, протокол сплетен может использовать некоторые из этих идей:

Типы протоколов

Полезно различать два преобладающих стиля протокола сплетен: [2]

Многие протоколы, которые предшествовали самому раннему использованию термина «сплетня», попадают в это довольно всеобъемлющее определение. Например, протоколы маршрутизации Интернета часто используют обмен информацией, похожий на сплетни. Субстрат сплетен может использоваться для реализации стандартной маршрутизируемой сети: узлы «сплетничают» о традиционных сообщениях точка-точка, эффективно проталкивая трафик через уровень сплетен. Если позволяет пропускная способность, это означает, что система сплетен потенциально может поддерживать любой классический протокол или реализовывать любую классическую распределенную службу. Однако такая широко всеобъемлющая интерпретация редко подразумевается. Более типичными протоколами сплетен являются те, которые специально работают в регулярной, периодической, относительно ленивой, симметричной и децентрализованной манере; высокая степень симметрии между узлами особенно характерна. Таким образом, хотя можно было бы запустить протокол двухфазной фиксации на субстрате сплетен, это противоречило бы духу, если не формулировке, определения.

Термин «конвергентно согласованный» иногда используется для описания протоколов, которые достигают экспоненциально быстрого распространения информации. Для этой цели протокол должен распространять любую новую информацию на все узлы, которые будут затронуты информацией, в течение времени, логарифмического по размеру системы («время смешивания» должно быть логарифмическим по размеру системы).

Примеры

Предположим, что мы хотим найти объект, который наиболее точно соответствует некоторому шаблону поиска, в сети неизвестного размера, где компьютеры связаны друг с другом и где на каждой машине запущена небольшая агентская программа, реализующая протокол сплетен.

Если сообщения могут стать большими (например, если одновременно активны многие поиски), следует ввести ограничение на размер. Кроме того, поиски должны «стареть» в сети.

Из этого следует, что в течение логарифмического времени по размеру сети (количества агентов) любая новая строка поиска достигнет всех агентов. В течение дополнительной задержки той же приблизительной длины каждый агент узнает, где можно найти наилучшее совпадение. В частности, агент, который начал поиск, найдет наилучшее совпадение.

Например, в сети с 25 000 машин мы можем найти лучшее совпадение примерно после 30 раундов сплетен: 15 для распространения строки поиска и еще 15 для обнаружения лучшего совпадения. Обмен сплетнями может происходить так часто, как раз в десятую долю секунды, не создавая чрезмерной нагрузки, поэтому эта форма сетевого поиска может обыскать большой центр обработки данных примерно за три секунды.

В этом сценарии поиски могут автоматически устаревать в сети, скажем, через 10 секунд. К тому времени инициатор знает ответ, и нет смысла продолжать сплетничать об этом поиске.

Протоколы сплетен также использовались для достижения и поддержания согласованности распределенной базы данных или других типов данных в согласованных состояниях, подсчета количества узлов в сети неизвестного размера, надежного распространения новостей, организации узлов в соответствии с некоторой политикой структурирования, построения так называемых оверлейных сетей , вычисления агрегатов, сортировки узлов в сети, выбора лидеров и т. д.

Эпидемические алгоритмы

Протоколы сплетен могут использоваться для распространения информации способом, довольно похожим на тот, которым вирусная инфекция распространяется в биологической популяции. Действительно, математика эпидемий часто используется для моделирования математики сплетен. Термин « алгоритм эпидемии» иногда используется при описании программной системы, в которой используется этот вид распространения информации на основе сплетен.

Смотрите также

Ссылки

  1. ^ Демерс, Алан; Грин, Дэн; Хаузер, Карл; Айриш, Уэс; Ларсон, Джон (1987). "Эпидемические алгоритмы для обслуживания реплицированных баз данных". Труды шестого ежегодного симпозиума ACM по принципам распределенных вычислений - PODC '87 . стр. 1–12. doi :10.1145/41840.41841. ISBN 978-0-89791-239-6. OCLC  8876960204. S2CID  1889203.
  2. ^ Jelasity, Márk (2011-01-01). "Gossip" (PDF) . В Serugendo, Giovanna Di Marzo; Gleizes, Marie-Pierre; Karageorgos, Anthony (ред.). Самоорганизующееся программное обеспечение . Серия Natural Computing. Springer Berlin Heidelberg. стр. 139–162. doi :10.1007/978-3-642-17348-6_7. ISBN 978-3-642-17347-9. S2CID  214970849.

Дальнейшее чтение