Изменения

Перейти к: навигация, поиск

Формализм распределённых систем

1888 байт добавлено, 19:30, 4 сентября 2022
м
rollbackEdits.php mass rollback
Нас интересует взаимодействие между процессами, оно бывает ровно одного вида: посылки сообщений друг другу.
С точки зрения внешнего мира процесс считается однопоточным: все отправки/получения сообщений одним процессом линейно упорядочены.
Обычно каждый процесс может послать сообщение каждому, но иногда это ограничивается.
В реальном мире может быть такое, что кому-то отослать сообщение быстрее, чем другому.
В каждом процессе могут происходить '''события''', обычно обозначаются маленькими латинскими буквами: $a, b, c, d, \dots \in \mathbb E$.
Так что в алгоритмах нас интересует не время вычислений, а количество посланных сообщений, причём точное, а не просто асимптотика.
Отказ узлов или связи в распределённых системах — обычное дело, это '''основная сложность ''' разработки распределённых алгоритмов(в отличие от просто параллельных).
До билетов про иерархию ошибок мы считаем, что ошибок нет (например, в алгоритмах взаимного исключения).
# Если "сейчас" ни один процесс в критической секции не находится, но кто-то "хочет" в неё попасть, то хотя бы один процесс рано или поздно туда попадёт.
# "Честность": если процесс хочет попасть в критическую секции, то он рано или поздно туда попадёт независимо от действий остальных (если они, конечно, секцию будут освобождать).
 
=== Запуск нескольких алгоритмов и перезапуск ===
Некоторые алгоритмы в курсе алгоритмы "одноразовые" (например, достижение консенсуса или снятие согласованного среза).
Чтобы запустить их несколько раз, на практике можно запустить несколько копий алгоритма и к каждому сообщению прикреплять номер копии.
Тогда они будут работать независимо друг от друга и работать корректно, хотя нет никаких гарантий про то, как они будут соотноситься между собой (например, алгоритм, запущенный позже, может завершиться раньше).
 
Также могут быть тонкости с "запуском" алгоритмов: например, [[алгоритм Чанди-Лампорта]] требует сохранять все отправленные с начала времён сообщения.
 
Ещё бывают тонкости с конфигурацией и переконфигурацией алгоритмов, особенно актуально для алгоритмов консенсуса, но это всё разбиралось лишь на семинарах.
1632
правки

Навигация