📝 CAP-теорема простыми словами
Иногда на собесах или работе можно встретить вопрос про CAP теорему
В распределённых системах нельзя одновременно обеспечить три свойства:
1) C — Consistency: все узлы возвращают одинаковые данные
2) A — Availability: система всегда отвечает (не важно ошибки в бд или успех)
3) P — Partition tolerance: работает даже при проблемах сети при масштабировании
Причем в реальности выбираем P неизбежно, так как сеть ненадежна.
Поэтому реальный выбор — между C и A
☺️ CP — согласованность важнее доступности
Система лучше не ответит, чем вернёт разные данные из разных узлов
Примеры: Zookeeper, etcd, PostgreSQL в синхроне
💀 AP — доступность важнее согласованности
Система отвечает всегда, даже если данные временно расходятся. Это может быть удобно, например, при реализации лайков (не страшно, если будет расхождение)
Примеры: Cassandra, MongoDB, Dynamo-подобные
💡 Итог
CAP — это про компромисс: что для тебя важнее при аварии — доступность или корректность данных?
Есть еще так NewSQL, которые якобы могут и масштабироваться, советую почитать про такой вид бд
🚀 Пост Guru Node.js: @DemetraIT
Post #467
223
- ❤ 1
- 👍 1