Доказательство теоремы CAP — теперь с картинками! Теорема CAP гласит, что распределенная система может отвечать только двум требованиям из трех: согласованная, доступная и устойчивая к фрагментации. Почему так? Ответы в коротком иллюстрированном гайде по ссылке — ну, или у нас в посте, но без иллюстраций. Гайд не углубляется в тонкости, но знакомит с основными понятиями. 🔜 Представим простую распределенную систему — два сервера, которые обмениваются данными друг с другом и с внешним клиентом. На них хранятся данные о значении некой переменной V. У этой системы могут быть следующие свойства: 🔵 Согласованность (Consistency) — если клиент отправляет запись V = 1 на один сервер, то второй при чтении должен вернуть такое же значение. Если на одном сервере V = 1, а на втором все еще V = 0, то система не согласована. 🔵 Доступность (Availability) — оба сервера, если только никто не пролил на один из них чай, отвечают на запросы клиента на запись и чтение данных. 🔵 Устойчивость к фрагментации (Partition tolerance) — система продолжает работу, даже если какое-то количество сообщений от одного сервера не доходят до второго. 🔜 Наконец-то подходим к доказательству. 🔵 Если система устойчива к фрагментации и доступна, она не может гарантировать согласованность — рано или поздно возникнет ситуация, когда клиент отправит запись на один сервер, а до второго она не дойдет. Тогда один выдаст V = 1, а второй V = 0. 🔵 Чтобы обеспечить устойчивость и согласованность, системе придется пожертвовать доступностью — то есть отказаться вносить данные, если она не может гарантировать, что все ее узлы получат обновление. 🔵 Практически в любой реальной распределенной системе неизбежны потери данных между нодами. При этом, она, скорее всего, не упадет — то есть она будет устойчива к фрагментации. А если она устойчива к фрагментации, то мы возвращаемся к пункту 1. 🔜 Все так просто? На самом деле нет. К каждому пункту из поста можно добавить звездочку и написать дополнение, которое все усложняет, но это уже не влезет в пост.
Доказательство теоремы CAP — теперь с картинками! Теорема CAP гласит, что…
Из этого канала
- #1732Когда пришел на новый проект, где заказчик уже пытался сам построить какую-то…
Когда пришел на новый проект, где заказчик уже пытался сам построить какую-то аналитику с кучей табличек и Божьей помощью #мем
- #1733Пришло время рассказать про мою книгу по аналитике для руководителей Мы с…
Пришло время рассказать про мою книгу по аналитике для руководителей Мы с командой уже довольно долго над ней работаем, и вот, наконец-то, этот процесс…
- #1734Как ИИ помог игрокам в го стать лучше Все возрастающее влияние ИИ не всегда…
Как ИИ помог игрокам в го стать лучше Все возрастающее влияние ИИ не всегда делает жизнь лучше.
- #1730ИИ для скоринга клиентов — за и против Представьте себе мир, где искусственный…
ИИ для скоринга клиентов — за и против Представьте себе мир, где искусственный интеллект следит за каждым вашим шагом и выносит свой вердикт — хороший вы…
- #1729Про Avito Data Tech и Redash Я достаточно давно слежу за ребятами из Avito Data…
Про Avito Data Tech и Redash Я достаточно давно слежу за ребятами из Avito Data Tech, в основном, потому что несколько раз в разных источниках натыкался на то,…