Сервис принимает 100 млн сообщений в сутки по 1 КБ. Сколько примерно места потребуется за год и какой множитель забывают чаще всего?
- Как оценить объём хранения на год?
- Какие множители учитывать при оценке хранилища?
10⁸ × 1 КБ = 100 ГБ в сутки → ~36 ТБ в год → ~100 ТБ с тройной репликацией. Чаще всего забывают множитель репликации.
- Формула: записей в сутки × размер × срок хранения × репликация × накладные расходы
- Индексы могут добавить столько же, сколько сами данные; сжатие — уменьшить в разы
- Из ответа — следствия: партиционирование по времени, холодное хранилище, срок жизни данных
А ещё Бэкапы — ещё одна копия, обычно в отдельном хранилище
Подробно
Расчёт: 100 млн сообщений × 1 КБ = 10¹¹ байт = 100 ГБ в сутки. За год × 365 ≈ 36,5 ТБ. Реплик обычно три (Kafka, Cassandra, HDFS, облачные диски) — ~110 ТБ.
Множители, которые забывают:
- репликация — ×2–3;
- индексы — для активно индексируемых таблиц сопоставимы с данными;
- служебные данные — заголовки строк, метаданные, фрагментация;
- бэкапы и снимки;
- рост — нагрузка через год не та же, что сейчас.
И один уменьшающий: сжатие — текст и JSON сжимаются в 3–10 раз, колоночные хранилища — ещё лучше.
Что делать с ответом:
- 100 ТБ в год не помещаются в одну базу — нужно партиционирование по времени и, вероятно, шардирование;
- старые данные читают редко — переносить в дешёвое объектное хранилище (S3-совместимое) или колоночный формат;
- определить срок жизни данных (TTL): часто сообщения старше 90 дней никому не нужны;
- оценить пропускную способность записи: 100 ГБ в сутки ≈ 1,2 МБ/с в среднем — немного, но пики выше.
Что хотят услышать
- Формула и расчёт с округлением.
- Репликация, индексы, бэкапы как множители; сжатие как делитель.
- Архитектурные следствия: партиционирование, холодное хранилище, TTL.
Частые ошибки
- Не учесть репликацию.
- Остановиться на числе без выводов.
Проверьте себя
Один верный вариант. Подумайте, потом откройте ответ.
Показать варианты и ответ
- ✗Около 36 ТБ — репликация на объём хранения не влияет
- ✗Около 100 ГБ — сжатие уменьшает объём на три порядка
- ✓Около 36 ТБ, с тройной репликацией ≈ 100 ТБ; забывают именно репликацию
- ✗Около 3,6 ПБ: объём умножают на число реплик, регионов и резервных копий сразу
Что спросят дальше
- Как срок жизни данных меняет эту оценку?
- Когда имеет смысл выносить холодные данные в объектное хранилище?
Разбор темы
- Оценка нагрузки и ресурсов
Как считать на салфетке: QPS из аудитории, пиковые коэффициенты, объём хранения и трафик, порядки задержек, узкое место и типичные ошибки оценки на интервью.
Связанные вопросы
Разбор собеседования с sotto
После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.