Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Postgres: cap, distributed, tradeoffs

Почему в распределённых системах нельзя гарантировать все три свойства CAP одновременно?

Вопрос углубляется в ограничения CAP-теоремы для распределенных систем.

Короткий ответ

При сетевом разделении (P) система должна выбрать:

  • Либо отвечать (A), рискуя несогласованностью

  • Либо ждать восстановления связи (C), теряя доступность
    Невозможно одновременно гарантировать и мгновенную согласованность, и полную доступность при партишенах.

Длинный ответ

Доказательство от противного:

  1. Предположим, система обеспечивает все три свойства (CAP)

  2. Происходит сетевой раздел (P)

  3. Узел A пытается записать данные

  4. Узел B не может получить обновления из-за партишена

  5. Если система отвечает B (A), данные будут несогласованны (¬C)

  6. Если ждет восстановления связи (C), становится недоступной (¬A)

Практические следствия:

  • Все распределенные системы делают выбор между CP и AP

  • Реальные системы часто ослабляют требования (например, eventual consistency)

  • Аватар

    Golang Guru

    Maxim Lukyanov

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    1

  • Сложность:

    6

Навыки

  • Postgres

    Postgres

Ключевые слова

#cap

#distributed

#tradeoffs

Подпишись на Python Developer в телеграм

  • Аватар

    Golang Guru

    Maxim Lukyanov

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.