Опис послуги
ПерекладЯ проектую й супроводжую розподілені 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 конфігурація