Изменения

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

Replicated State Machine

233 байта добавлено, 19:30, 4 сентября 2022
м
rollbackEdits.php mass rollback
[[Категория:Параллельное программирование]]
'''Replicated State Machine''' — система, которая хранит некий автомат (state machine) распределённо, а пользователи могут применять к этому автомату операции.
После этого RSM обязана эту операцию либо атомарно применить, либо откатить, и сообщить об этом пользователю.
Нам обязательно нужна защита от отказов (иначе непонятно, зачем клонировать автомат),
рандом из [[Алгоритм Бен-Ора|алгоритма Бен-Ора]] "не сильно спасает" (как говорилось на лекции; вероятно, тут подразумевается его тормознутость),
а надеяться на синхронность системы на практике не хочется ("вдруг сообщение придёт не скоро?или в swap кто-то ушёл" с лекции).
По этому поводу мы обычно жертвуем завершением за конечное время: алгоритм [[Paxos]].
Однако на практике могут возникать дополнительные сложности с тем, что узлы у нас не падают навсегда, а временно уходят и поднимаются обратно (т.е. [[Иерархия ошибок в распределённых системах|с точки зрения теории]] у нас , строго говоря, ненадёжная доставка сообщений), а нам надо консенсус запускать несколько раз и ещё как-то доносить старые решения до вернувшихся узлов (чтобы на них тоже получилось корректное состояние).
В алгоритме [[Raft]] это отдельно разбирается.
 
По факту применяются и [[Paxos]], и [[Raft]] и все живут.
1632
правки

Навигация