diff --git a/dev/architecture/CAP теорема.md b/dev/architecture/CAP теорема.md new file mode 100644 index 00000000..f9d19073 --- /dev/null +++ b/dev/architecture/CAP теорема.md @@ -0,0 +1,35 @@ +--- +aliases: +tags: + - maturity/🌱 +date: + - - 2024-03-12 +zero-link: + - "[[../../meta/zero/00 Архитектура ИС|00 Архитектура ИС]]" +parents: +linked: +--- +CAP теорема — это принцип, описывающий фундаментальные ограничения, с которыми сталкиваются распределённые вычислительные системы в контексте обеспечения следующих трёх свойств: +- **Согласованность (Consistency)**: Каждый раз, когда данные читаются, возвращается самое последнее записанное значение или ошибка. С другими словами, операции с данными выглядят так, будто выполняются в некоторой строгой последовательности, одна за другой +- **Доступность (Availability)**: Каждый запрос на получение или запись данных получает ответ, независимо от состояния системы, даже если некоторые части системы вышли из строя. +- **Устойчивость к разделению (Partition Tolerance)**: Система продолжает функционировать, даже если произошло "разделение" — потеря связи между узлами в распределённой сети. То есть система способна переносить произвольное число сообщений, которые задерживаются или теряются в сети. + +==Согласно теореме CAP, в любой момент времени система может обеспечивать только два из этих трёх свойств.== Это означает, что при разработке системы приходится принимать компромисс между этими свойствами в зависимости от требований приложения и условий эксплуатации. Например, если для системы критически важна согласованность данных и её устойчивость к разделению, возможно придётся пожертвовать её доступностью в некоторых сценариях. + +## Свободные заметки +- Google заявляет, что их продукт Google Spanner якобы нарушает CAP теорему. +*** +## Мета информация +**Область**:: [[../../meta/zero/00 Архитектура ПО|00 Архитектура ПО]] +**Родитель**:: +**Источник**:: +**Автор**:: +**Создана**:: [[2024-03-12]] +### Дополнительные материалы +- +### Дочерние заметки +```dataview +LIST +FROM [[]] +WHERE contains(Родитель, this.file.link) or contains(parents, this.file.link) +``` \ No newline at end of file diff --git a/meta/zero/00 Архитектура ИС.md b/meta/zero/00 Архитектура ИС.md index b2f4b906..48c8ce0a 100644 --- a/meta/zero/00 Архитектура ИС.md +++ b/meta/zero/00 Архитектура ИС.md @@ -5,6 +5,7 @@ parents: - "[[00 Разработка]]" title: Архитектура ПО --- +- [[../../dev/architecture/CAP теорема|CAP теорема]] - [Трёхзвенная структура](../../dev/architecture/Трёхзвенная%20структура.md) - [Монолитная архитектура](Монолитная%20архитектура.md) - [Микросервисная архитектура](Микросервисная%20архитектура.md)