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. Отсюда её характер: она жертвует привычными связями и транзакциями ради линейной масштабируемости записи и постоянной доступности. Разбираем это по слоям.

Статьи раздела

  1. Архитектура: кольцо без главного узла — masterless-кольцо и партиционирование по токенам, gossip, путь записи (commit log → memtable → SSTable), compaction и tombstones, репликация по нескольким дата-центрам.
  2. Модель данных: partition key и clustering columns — wide-column-строки, из чего состоит первичный ключ, проектирование «от запросов» и денормализация, что можно и нельзя в CQL.
  3. Согласованность и репликация — replication factor, уровни согласованности (ONE / QUORUM / LOCAL_QUORUM / ALL), правило R + W > RF для строгого чтения, hinted handoff, read repair, облегчённые транзакции (LWT) и чего Cassandra не гарантирует.

Связанное