Devs Hive
Повернутися до всіх запитань

Що таке теорема CAP?

SeniorSystem designMicroservices
Зустрічали на інтервʼю:1 користувач

Одне з обовʼязкових питань на Senior-інтервʼю в проєктах з розподіленими системами. Питання теоретичне, але показує, наскільки глибоко ви зайшли в System Design та архітектуру мікросервісів.

CAP-теорема описує фундаментальний компроміс у розподілених системах зберігання даних, де дані реплікуються між кількома вузлами. Вона стверджує, що за наявності мережевого розділення (partition) система не може одночасно гарантувати всі три властивості: узгодженість (Consistency), доступність (Availability) і стійкість до розділення (Partition tolerance).

  1. Consistency: кожен запит на читання повертає найактуальніше значення, тобто всі вузли поводяться як єдине джерело істини.
  2. Availability: кожен запит отримує відповідь, система завжди доступна і не блокується повністю.
  3. Partition tolerance: система продовжує працювати, навіть якщо між частинами кластера втрачено зв’язок або з’явилися значні затримки.

Практичний сенс теореми полягає в тому, що в розподіленій системі мережеві збої неминучі, тому Partition tolerance ми приймаємо як даність. У таких умовах доводиться обирати пріоритет між Partition tolerance + Consistency (PC) і Partition tolerance + Availability (PA).

CP: система зберігає коректність і актуальність даних, але може тимчасово блокувати операції, щоб не повертати суперечливі дані. Відповідно, деколи система може бути недоступна і повертати помилку чи таймаут, щоб зберегти узгодженість даних.

AP: система продовжує відповідати завжди, але допускає, що під час розділення різні вузли можуть повертати застарілі значення. При цьому підході узгодження відбудеться пізніше, і для цього підходу теж є назва - Eventual Consistency.

Важливо розуміти, що CAP змушує до компромісу тільки при виникненні проблем. В звичному режимі система повинна мати як високу доступність, так і прийнятну узгодженість даних.

Зустрічав на інтервʼю?

Коментарі (0)

Увійдіть, щоб залишити коментар

Поки що немає коментарів. Будьте першим!