TGStat
TGStat
Введите текст для поиска
Расширенный поиск каналов
  • flag Russian
    Язык сайта
    flag Russian flag English flag Uzbek
  • Вход на сайт
  • Каталог
    Каталог каналов и чатов Региональные подборки Тематические подборки Платные каналы Поиск каналов
    Добавить канал/чат
  • Рейтинги
    Рейтинг каналов Рейтинг чатов Рейтинг публикаций
    Рейтинги брендов и персон
  • Аналитика
  • Поиск по публикациям
  • Мониторинг Telegram
  • Продвижение
    Реклама через Яндекс Бизнес Реклама в каналах через TGStat Agency Реклама на сайте TGStat.ru
Соло, научи меня | Системный анализ

30 Sep, 08:32

Открыть в Telegram Поделиться Пожаловаться

📖 Ванечка обещает невозможное

Ванечка защищал требования к системе учёта ПиццаЕдинорога и решил произвести впечатление.

- Система будет всегда доступна, остатки на складе всегда актуальны, с любой точки одинаковые, и всё это работает, даже если между точками оборвётся связь.

Инвестор просиял. ПиццаЕдинорог поднял голову от теста и медленно произнёс: повтори последнее предложение.

Ванечка повторил, с выражением🤩

😐- Ты только что пообещал то, что математически невозможно.

Ванечка обиделся, он ведь просто перечислил хорошие вещи.

Единорог вытер руки..

- Ванечка, у нас две точки, склад один, учётная система общая. И вдруг связь между точками пропала. Что делаешь?
- Ну... продолжаю продавать?
- Хорошо. Обе точки торгуют. Точка на Ленина продала последнюю банку трюфельного соуса, точка на Мира об этом не знает и продала её же. Оба клиента довольны ровно до момента выдачи. Ты выбрал доступность и потерял согласованность.
- Тогда ставлю стоп-лист, пока связь не починят!
- Тоже вариант. Никто не купит то, чего нет, зато касса стоит и люди уходят. Ты выбрал согласованность и потерял доступность.
- А третий вариант?
- Третьего нет, это и есть теорема CAP. У распределённой системы, где данные лежат на нескольких серверах, три желаемых свойства.

💛💛💛💛💛
Consistency, согласованность: любой узел на один и тот же запрос отдаёт одинаковый ответ.
Availability, доступность: система отвечает, даже если часть узлов вышла из строя.
Partition tolerance, устойчивость к разделению: система работает, когда связь между узлами оборвалась.
💛💛💛💛💛
- Гарантировать можно только два свойства из трёх. CA, AP, CP пожалуйста, CAP нет.
- А почему нельзя просто выбрать CA? Согласованность и доступность это самое вкусное.
- Потому что CA означает, что разрывов сети не бывает, а в распределённой системе они будут обязательно: кабель, маршрутизатор, ЦОД. Поэтому P у тебя есть всегда, хочешь ты того или нет, и реальный выбор стоит между CP и AP.
- И как выбирать?
- По цене ошибки. Деньги, платежи, остатки на складе только CP: пусть операция подождёт, чем дважды продадим один соус. Лайки, просмотры, лента это AP: если у двух пользователей число лайков разошлось на пару секунд, никто не пострадал.


Ванечка вернулся и переписал строчку: "при разрыве связи между точками приоритет отдаётся согласованности, списание остатков блокируется до восстановления."
💛💛💛💛💛

Что важно запомнить:
⚪️CAP работает только для распределённых систем, где данные лежат на нескольких узлах
⚪️C это одинаковые данные на всех узлах, A это ответ при отказе части узлов, P это работа при разрыве связи
⚪️Разрыв сети неизбежен, поэтому P есть всегда, выбор стоит между CP и AP
⚪️Обещание "всегда доступна и всегда согласована" выполнить нельзя
💛💛💛💛💛

     🔸🔸🔸🔸🔸🔸

Три узла A, B, C:
Consistency: данные одинаковы везде, обновили B и репликация разнесла изменение на A и C
Availability: узел B умер, A и C продолжают отвечать, система жива
Partition tolerance: сеть разорвалась, B отрезан от A и C, но продолжает обслуживать запросы

Почему при разрыве нельзя всё сразу, ведь B не отдаёт изменения A и C:
➡️Приоритет доступности: отвечаем дальше, но клиенты B видят одно, клиенты A и C другое, согласованность потеряна
➡️Приоритет согласованности: не принимаем запросы до устранения разрыва, доступность потеряна

Что выбирать:
➡️CP - банки, платежи, биржи, склады, бронирование
➡️AP - соцсети, ленты, счётчики, рекомендации

Отдельный сервер распределённой системы называют нодой (node).

Как это звучит в требованиях:
❌ Данные всегда актуальны и система всегда доступна
✔️ При сетевом разделении приоритет отдаётся согласованности, запись блокируется до восстановления связи

💛А у вас в проекте выбрали CP или AP? Осознанно или как-то само получилось?

#ВанечкаИЕдинорог #СистемныйАнализ #SystemDesign #CAP #Обучение

67 0 1 4 13
Каталог
Каталог каналов и чатов Подборки каналов Поиск каналов Добавить канал/чат
Рейтинги
Рейтинг каналов Telegram Рейтинг чатов Telegram Рейтинг публикаций Рейтинги брендов и персон
API
API статистики API поиска публикаций API Callback
Наши каналы
@TGStat @TGStat_Chat @telepulse @TGStatAPI
Почитать
Академия TGStat Исследование Telegram 2019 Исследование Telegram 2021 Исследование Telegram 2023
Контакты
Справочный центр Поддержка Почта Вакансии
Всякая всячина
Пользовательское соглашение Политика конфиденциальности Публичная оферта
Наши боты
@TGStat_Bot @SearcheeBot @TGAlertsBot @tg_analytics_bot @TGStatChatBot