Ответ
Strong Consistency (строгая согласованность) — это модель согласованности данных в распределённых системах, которая гарантирует, что после завершения операции записи все последующие операции чтения (независимо от узла, на котором они выполняются) вернут самое актуальное значение или ошибку.
Простая аналогия: Это похоже на работу с одной копией данных. Как только вы записали новое значение в базу, любой, кто читает после этого, увидит именно это новое значение.
Ключевые свойства:
- Линеаризуемость (Linearizability): Операции выглядят так, как если бы они выполнялись мгновенно в некоторой точке времени между их началом и завершением.
- Предсказуемость: Система ведёт себя как централизованная (не распределённая) с точки зрения порядка операций.
Пример: В реляционных БД (например, PostgreSQL) с настройками по умолчанию транзакции обеспечивают строгую согласованность.
Компромиссы:
- Доступность (Availability): Для обеспечения строгой согласованности при сетевых разделах система может отказаться отвечать на запросы (согласно теореме CAP).
- Задержка (Latency): Требуется синхронизация между репликами перед ответом клиенту, что увеличивает время отклика.
Альтернативы: Для повышения доступности и производительности в распределённых системах часто используют более слабые модели, такие как Eventual Consistency (согласованность в конечном счёте) или Session Consistency.