4.6 KiB
4.6 KiB
aliases, tags, date
| aliases | tags | date | |||
|---|---|---|---|---|---|
|
|
2025-01-15 |
Согласованность данных — это свойство, гарантирующее, что данные в ../../../../_inbox/Информационная система остаются правильными и соответствуют определённым правилам после выполнения операций. Это важно как для локальных баз данных, так и для распределённых систем.
Проблемы согласованности
- Сетевые задержки. Latency или сбои в сети увеличивают сложность обеспечения согласованности.
- Конфликты данных. При параллельных изменениях системы должны разрешать конфликты.
- Цена согласованности. Чем выше уровень согласованности, тем больше задержки и ниже производительность.
Уровни согласованности
- Строгая согласованность (Strong Consistency): Все узлы системы видят одно и то же состояние данных в любой момент времени.
- Пример: Системы банковских счетов.
- Недостаток: Высокие Latency, так как требуется синхронизация между всеми узлами.
- Чтение после записи (Read-After-Write Consistency):
- После записи данных в систему любое последующее чтение возвращает обновлённое значение.
- Пример: Создание или обновление документа.
- highload/Монотонное чтение (Monotonic Read Consistency):
- Если пользователь прочитал определённое значение данных, последующие чтения не вернут более старое состояние.
- Еventual consistency (Eventual Consistency): Узлы системы со временем синхронизируются, но в краткосрочной перспективе данные могут быть несогласованными.
- Пример: Системы репликации данных, такие как ../network/Domain Name System.
Методы обеспечения согласованности
- Консенсусные алгоритмы:
- Paxos, Raft: Обеспечивают согласованность между узлами в условиях отказов.
- Применяются в распределённых базах данных и системах координаторов.
- Механизмы транзакций:
- ../fundamental/Two-Phase Commit (2PC): Обеспечивает атомарность и согласованность между участниками транзакции.
- Согласованное журналирование: Используется для highload/Disaster recovery согласованности после сбоев.
- Паттерны согласованности:
- Еventual consistency + Идемпотентность: Для систем, допускающих временную рассогласованность.
- Transactional Outbox: Для передачи данных между системами с гарантией доставки.
Мета информация
Область:: Родитель:: Источник:: Создана:: 2025-01-15 Автор::