Apache Cassandra
Раздел про Apache Cassandra: архитектура без главного узла (кольцо, партиционирование, путь записи, compaction), модель данных wide-column (partition key, clustering columns, проектирование от запросов) и настраиваемая согласованность (replication factor, уровни согласованности, кворум).
Зачем для UCP. Cassandra применяется на UCP-сервисах с потоком записи, который не тянет одна первичная база: телеметрия, события, ленты, счётчики. Senior должен уметь осознанно выбрать между PostgreSQL, MongoDB и Cassandra и понимать, чем платит за масштаб. Входит в программу подготовки.
Статьи про устройство и эксплуатацию Cassandra. Cassandra родилась из двух идей: модель данных взята у Google Bigtable, а способ распределения по узлам — у Amazon Dynamo. Отсюда её характер: она жертвует привычными связями и транзакциями ради линейной масштабируемости записи и постоянной доступности. Разбираем это по слоям.
Статьи раздела
- Архитектура: кольцо без главного узла — masterless-кольцо и партиционирование по токенам, gossip, путь записи (commit log → memtable → SSTable), compaction и tombstones, репликация по нескольким дата-центрам.
- Модель данных: partition key и clustering columns — wide-column-строки, из чего состоит первичный ключ, проектирование «от запросов» и денормализация, что можно и нельзя в CQL.
- Согласованность и репликация — replication factor, уровни согласованности (ONE / QUORUM / LOCAL_QUORUM / ALL), правило
R + W > RFдля строгого чтения, hinted handoff, read repair, облегчённые транзакции (LWT) и чего Cassandra не гарантирует.
Связанное
- PostgreSQL или MongoDB и Cassandra, PostgreSQL или MongoDB — когда какую базу выбрать.
- Раздел про MongoDB — другая NoSQL: документная, с первичным узлом; те же темы (согласованность, репликация), решённые иначе.
- Раздел про PostgreSQL — реляционная база с ACID и
JOIN, для сравнения.