Короткий ответ
Strong consistency — гарантия, что после успешного завершения операции обновления любое последующее чтение увидит это обновление немедленно, без промежуточного «старого» состояния.
Как это работает подробнее
Обычно достигается чтением/записью через единственный авторитетный узел (primary) или синхронным согласованием между узлами перед подтверждением записи.
Пример кода
example.sql
BEGIN;
UPDATE accounts SET balance = balance - 100 WHERE id = 1;
UPDATE accounts SET balance = balance + 100 WHERE id = 2;
COMMIT;Что использовать на практике
- Практика. Даёт предсказуемость, но стоит дороже по латентности и доступности; применяют там, где цена рассинхронизации высока (финансовые балансы, уникальные ограничения).
Подводные камни
- Риск. Считать, что «одна БД» автоматически даёт strong consistency при наличии реплик для чтения — чтение с асинхронной read-реплики может вернуть устаревшие данные.