Как устроить хайлоад на ровном месте

Что такое хайлоад

Что такое хайлоад на самом деле?

Производительные и масштабируемые системы высокой доступности.

Highload — чисто русское слово. Остальные используют high-volume.

Хайлоад — это ситуация в системе, грозящая отказом в обслуживании из-за недостатка ресурсов. Внештатная ситуация.

В идеале хайлоада не должно быть, но есть человеческие ошибки, которые ведут к недостатку ресурсов (железа, людей, денег), а он приводит к угрозе отказа в обслуживании.

Спешная починка костылями.

Костыль — решение задачи без серьёзного редизайна системы. Документированный костыль — полноценная фича системы.

Про что доклад:

Ошибки проектирования

Ошибки проектирования БД

Пример: id-координата, 60 терабайт. Объединили 200 точек в 1 JSON, получилось 10 терабайт. * Широкие таблицы — тоже плохо. * NoSQL когда не надо. На больших данных джойны в клиенте приводят к аду. * JSON/XML когда не надо. * «Ненужная» точность вычислений * Виртуализация и докер

Graceful degradation

Нелепости

Сложность оптимизации — факториал от количества таблиц индексов. Генетический оптимизатор избавляет от этой зависимости.

В PostgreSQL есть таймауты! Используйте их!

И еще много других!

Камни, под которые редко заглядывают:

Срочные костыли (не делайте так)

Хайлоада не избежать!