Описание услуги
Я проектирую и сопровождаю распределённые wide-column базы данных на Apache Cassandra и ScyllaDB и всегда начинаю с одного — с ваших запросов. Прежде чем поднять узел, я разбираю все пути чтения и записи, которые реально нужны приложению, и строю модель данных вокруг этих шаблонов доступа. В колоночном хранилище таблица следует за запросом, поэтому я осознанно денормализую данные, подбираю ключи партиционирования с равномерным распределением по кольцу и выбираю clustering-колонки, при которых горячие чтения попадают в одну партицию.
Дальше настраиваю кластер так, чтобы он держал реальный трафик. Задаю фактор репликации и уровни согласованности под ваш бюджет по надёжности и задержкам, ограничиваю размер партиций и подбираю стратегию компакции под нагрузку — временные ряды, журнал событий или высокооборотный key-value. Пишущие конвейеры держу на десятках тысяч операций в секунду без просадок на сбросах и компакции, а хвостовую задержку — предсказуемой: широкие партиции, tombstone-ы и горячие шарды ловлю заранее. На ScyllaDB использую архитектуру shard-per-core и снимаю с того же железа заметно больше пропускной способности.
Остаюсь и на те задачи, что ломают кластеры в три ночи: расписание repair, замена узлов, репликация между дата-центрами, планирование ёмкости и миграции с реляционной базы, переставшей масштабироваться. На выходе — база, которая поглощает всплески и растёт добавлением узлов.
— Моделирование данных от запросов и проектирование партиций
— Настройка репликации, согласованности и компакции
— Высокая скорость записи и предсказуемая задержка
— Repair, замена узлов и мульти-DC конфигурация
Дальше настраиваю кластер так, чтобы он держал реальный трафик. Задаю фактор репликации и уровни согласованности под ваш бюджет по надёжности и задержкам, ограничиваю размер партиций и подбираю стратегию компакции под нагрузку — временные ряды, журнал событий или высокооборотный key-value. Пишущие конвейеры держу на десятках тысяч операций в секунду без просадок на сбросах и компакции, а хвостовую задержку — предсказуемой: широкие партиции, tombstone-ы и горячие шарды ловлю заранее. На ScyllaDB использую архитектуру shard-per-core и снимаю с того же железа заметно больше пропускной способности.
Остаюсь и на те задачи, что ломают кластеры в три ночи: расписание repair, замена узлов, репликация между дата-центрами, планирование ёмкости и миграции с реляционной базы, переставшей масштабироваться. На выходе — база, которая поглощает всплески и растёт добавлением узлов.
— Моделирование данных от запросов и проектирование партиций
— Настройка репликации, согласованности и компакции
— Высокая скорость записи и предсказуемая задержка
— Repair, замена узлов и мульти-DC конфигурация