TGViewer
I hate overtime I hate overtime @overtimehate · 848 subscribers
Post #1183 734

Forwarded from Consensus

Одна из самых важных теорем в распределенных системах - C̶A̶P̶ FLP теорема.

Она строго доказывает, что невозможно достичь консенсуса, если:
🔸 Система асинхронна (что справедливо для реальных сетей)
🔸 Хоть один из узлов может отказать
🔸 Алгоритм детерминирован

И тут возникает вопрос - а как же алгоритмы консенсуса Paxos/Raft?

Paxos/Raft работают строго в рамках этой теоремы. У обоих алгоритмов существуют сценарии, при которых они не будут совершать прогресс, т.е. выбор одного значения на узлах никогда не завершится. Пофиксить это можно убрав какое-то условие из FLP, например детерминизм. Raft убирает детерменизм c помощью рандомных таймеров при выборе лидера, чтобы избегать таких сценариев.

Если вы вдруг придумали алгоритм консенсуса - найдите такое исполнение, при котором система не сможет совершать прогресс. Алгоритм консенсуса не может нарушать FLP теорему!

В общем, теорема не означает, что консенсус недостежим. Она лишь означает, что консенсус не всегда достежим/недостежим за детерминированное время. Это важно понимать.

#flp #theory
More from @overtimehate
  1. Oct 31, 2025🔎 Мы выложили на GitHub Runtime Radar — новое открытое решение для защиты контейнерных ср…
  2. Oct 31, 2025#security Котаны, тут Позитив изготовил вкусное. Если вы ставите себе сторонние чарты в св…
  3. Oct 3, 2025#security Привет, котаны! Наткнулся тут на такую штуку. Если у вас есть DevSecOps или вы х…
  4. Aug 9, 2025Ну и чего в итоге-то? А в итоге имеем следующее: ➕ тогаф прям очень хорошо умеет отвечать…
  5. Aug 9, 2025Для начала, попробую подъяснить на пальцах что это ваще такое. Если в нормальной компании…
  6. Aug 9, 2025#пятничное #arch Так уж получилось, что пару месяцев назад я стал сертифицированным архите…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →