
🔥 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 PACELCCAP and Consistency#databa




