MongoDB Academy · Урок

Теорема CAP простыми словами

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

Урок 3 из 413 шагов

«Теорема CAP простыми словами» — бесплатный урок MongoDB Academy на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения MongoDB Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс MongoDB Academy содержит 4 уроков всего.

Why Distributed Systems Are Hard

Распределение данных по множеству серверов обеспечивает масштабируемость, но создает головную боль, связанную с распределенными системами: узлы должны приходить к согласию, даже когда в сети случаются сбои. Здесь на помощь приходит теорема CAP.

The Three Properties: C, A, P

CAP-теорема гласит, что распределенное хранилище может гарантировать выполнение только двух из трех условий: согласованности, доступности и устойчивости к разделению. Подвох в том, что разделения случаются всегда.

Consistency Explained

Согласованность означает, что каждое чтение видит последнюю запись из любого узла. Вы вносите деньги и проверяете баланс в любом банкомате — вы увидите обновленную сумму. Это надежно, но требует жертв в скорости.

Availability Explained

Доступность означает, что на каждый запрос приходит ответ — без ошибок, даже если данные немного устарели. Корзина интернет-магазина, которая всегда позволяет добавить товары, сделала выбор в пользу этого принципа.

Partition Tolerance Explained

Разделение — это ситуация, когда узлы не могут общаться друг с другом, и в реальных сетях это неизбежно. Поэтому реальный выбор всегда сводится к согласованию (Consistency) или доступности (Availability) во время такого разделения.

CP Systems: Choose Consistency

CP-системы выбирают согласованность: в случае сетевого разделения они предпочтут вернуть ошибку, а не устаревшие данные. Это подходит для бухгалтерских книг и учета запасов, где цена неверных ответов слишком высока.

AP Systems: Choose Availability

AP-системы выбирают доступность: они отвечают всегда, даже при наличии несколько устаревших данных, а затем синхронизируются позже. Идеально подходят для лент социальных сетей, отзывов и корзин покупок.

Where MongoDB Falls in CAP

MongoDB по умолчанию является CP-системой. Только первичный узел принимает записи, поэтому во время разделения сети он на короткое время приостанавливает запись, чтобы избежать риска возникновения конфликтов. В коде показаны параметры чтения.

// MongoDB read preference configuration in Node.js driver
const client = new MongoClient(uri, {
  readPreference: 'primaryPreferred'
  // 'primary'          - CP: always fresh, fails during election
  // 'primaryPreferred' - slightly more available, mostly fresh
  // 'secondary'        - AP: always available, may be stale
  // 'nearest'          - lowest latency node
});

Eventual Consistency Demystified

Согласованность в конечном счете означает, что узлы могут на короткое время расходиться в данных, но через некоторое время все операции чтения будут возвращать актуальные значения. Ничего не теряется — просто требуется небольшая задержка.

PACELC: Beyond CAP

CAP охватывает только разделение сети (partition), которое случается редко. PACELC дополняет это повседневным компромиссом: даже при отсутствии разделения вы выбираете между низкой задержкой и строгой согласованностью.

Practical Implications for Developers

CAP помогает проектировать с умом: будьте готовы к немного устаревшим данным, корректно обрабатывайте повторные попытки (retries) и выбирайте гарантию записи «большинство» (majority) для критически важных операций. Код показывает, как это сделать.

// Use majority write concern for critical operations
db.orders.insertOne(
  { _id: 'ord_99', item: 'Headphones', qty: 1 },
  { writeConcern: { w: 'majority', j: true } }
);
// w:'majority' = acknowledged by majority of replica set members
// j:true = must be written to journal (durable on disk)

Quick Check

Проверьте свое понимание концепций MongoDB и баз данных NoSQL из этого урока.

Lesson Recap

Вы узнали о CAP-теореме, почему устойчивость к разделению (partition tolerance) не подлежит обсуждению, и что MongoDB по умолчанию является CP-системой. Далее: где именно MongoDB подходит лучше всего.

Можно начать бесплатно

Изучай JavaScript с ИИ-репетитором — бесплатно

Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.

Курсы
30
Уроки
120

Часто задаваемые вопросы

Урок «Теорема CAP простыми словами» бесплатный?

Да — полный текст урока «Теорема CAP простыми словами» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс MongoDB Academy, подпишись на CoddyKit PRO. Курс MongoDB Academy содержит 4 уроков всего.

Чему я научусь в уроке «Теорема CAP простыми словами»?

Вы разберётесь в компромиссах между согласованностью, доступностью и устойчивостью к разделению сети, которые определяют работу любой распределённой базы данных. Ты практикуешь MongoDB Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать MongoDB Academy?

Предыдущий опыт не требуется. MongoDB Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.

Сколько времени занимает урок «Теорема CAP простыми словами»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке MongoDB Academy?

Да. Каждый урок MongoDB Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Узкое место реляционных баз данных
  2. Разновидности NoSQL: документы, ключи и значения, столбцы, графы
  3. Теорема CAP простыми словами
  4. Место MongoDB среди других баз данных
← Назад к MongoDB Academy