Теорема CAP (CAP Theorem)
Теорема CAP стверджує, що розподілена система може забезпечити лише дві з трьох властивостей: узгодженість, доступність та стійкість до розділення.
The Three Guarantees: 1. Consistency (C): All nodes see the same data at the same time. 2. Availability (A): Every request gets a response, even if it's not the latest. 3. Partition Tolerance (P): System works despite network splits. Classifications: CP (Strong consistency), AP (High availability), CA (Single-node databases - not distributed).
graph LR
Center["Теорема CAP (CAP Theorem)"]:::main
classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
linkStyle default stroke:#4b5563,stroke-width:2px;
🧒 Простими словами
Уявіть, що ви з другом ведете спільний блокнот, але зараз ви в різних містах і зв'язок зник. Якщо хтось із вас щось записує, у іншого цієї інформації не буде. Ви або вирішуєте нічого не писати, поки зв'язок не з'явиться (узгодженість), або пишете кожен своє, знаючи, що ваші записи будуть різними (доступність). Ви не можете мати і те, і інше одночасно без зв'язку.
🤓 Expert Deep Dive
Важливо розуміти, що 'С' у теоремі CAP означає лінеаризовану узгодженість (Linearizability), що є набагато суворішою вимогою, ніж просто 'узгодженість' у базах даних SQL (ACID). У реальних системах, таких як Amazon Dynamo або Apache Cassandra, часто використовується компроміс: ви можете налаштувати 'рівень консистентності' для кожного окремого запиту, що дозволяє системі бути гнучкою.