13.8Kпросмотров
3 августа 2023 г.
📷 ФотоScore: 15.2K
🔥 CAP-теорема 📍 Теорема CAP утверждает, что распределенная система не может одновременно обеспечивать более двух из этих трех гарантий: (C)onsistency – согласованность, во всех серверах в один момент времени данные не противоречат друг другу.
(A)vailability - доступность, любой запрос к системе завершается корректным откликом, однако, без гарантии, что ответы всех серверов системы совпадают.
(P)artition Tolerance - устойчивость к разделению, разделение системы на несколько изолированных секций не приводит к некорректности отклика от каждой из секций. 🔨 Грани треугольника:
PA – в случае сетевого разделения узлов системы она продолжает отвечать на запросы, при этом не гарантируя согласованности данных. Примеры: Cassandra, CouchDB.
PC – в случае сетевого разделения узлов системы она прекращает отвечать на запросы, данные остаются согласованными. Примеры: MongoDB, Redis.
CA – в случае отсутствия сетевого разделения данные доступны и согласованы. Примеры: MySQL, Postgres. 🆘 Latency(время ответа на запрос)
Если в кластере из 10 узлов «погибает» 9, то оставшийся мастер не сможет обслужить всех пользователей с удовлетворительным latency. ✅ PACELC-теорема, расширение CAP-теоремы.
IF P THEN (A or C) ELSE (L or C)
В случае сетевого разделения (P) в распределенной системе необходимо выбирать между доступностью (A) и согласованностью (C), как и в CAP- теореме, но в остальном (E, ELSE), даже при нормальной работе системы без разделения, нужно выбирать между задержкой (L) и согласованностью (C). 🛠️ Грани ромба:
PA/EL – высокая доступность (A) при разделении (P) системы, иначе (E) высокая скорость ответа (L). Примеры: Cassandra.
PC/EC – согласованность (С) при разделении (P) системы, иначе (E) согласованность (С). Примеры: MySQL, Postgres.
PC/EL – согласованность (С) при разделении (P) системы, иначе (E) высокая скорость ответа (L). Примеры: PNUTS.
PA/EC – высокая доступность (A) при разделении (P) системы, иначе (E) согласованность (С). Примеры: MongoDB. CAP vs PACELC CAP and Consistency #database
#cap