Назад к вопросам
Senior
3
Расскажите про Cassandra: консистентность, гарантии, особенности
Компании, где спрашивали
РТК ИТ
Ответ от нейросети
sobes.tech AI
Apache Cassandra — это распределённая NoSQL база данных, ориентированная на высокую доступность и масштабируемость.
Консистентность: Cassandra использует модель консистентности с настраиваемым уровнем (tunable consistency). Можно выбрать уровень консистентности для операций чтения и записи: от одного узла (ONE) до всех узлов (ALL). Это позволяет балансировать между скоростью и строгой консистентностью.
Гарантии:
- Eventual consistency по умолчанию, но можно добиться сильной консистентности, настроив уровни чтения и записи.
- Записи идемпотентны, поддерживается механизм разрешения конфликтов по времени (timestamp).
- Поддержка репликации данных с возможностью выбора стратегии (SimpleStrategy, NetworkTopologyStrategy).
Особенности:
- Колонко-ориентированная модель данных с динамическими колонками.
- Отсутствие схемы жесткой структуры, что даёт гибкость.
- Высокая отказоустойчивость за счёт репликации и автоматического восстановления.
- Использует протокол Gossip для обмена состоянием между узлами.
- Поддержка CQL (Cassandra Query Language), похожего на SQL.
Пример настройки уровня консистентности при записи в Java драйвере:
session.execute(
new SimpleStatement("INSERT INTO users (id, name) VALUES (?, ?)", id, name)
.setConsistencyLevel(ConsistencyLevel.QUORUM));
Здесь QUORUM означает, что запись должна быть подтверждена большинством реплик.