Оценка хранилища и пропускной способности
Вторая половина оценки: сколько данных накопится за год и какой нужен канал.
Пропускная способность (bandwidth) — объём данных в секунду, который система должна передавать; считается как QPS × средний размер ответа.
Объём хранилища
Берём число записей в сутки и умножаем на размер одной записи, затем экстраполируем на год. Для сократителя ссылок: 100M новых ссылок в месяц, на запись ~500 байт (короткий код, оригинал, метаданные).
в месяц = 100_000_000 записей
размер = 500 байт
за месяц = 100M * 500B = 50 ГБ
за 5 лет = 50 ГБ * 12 * 5 = 3 ТБВывод: 3 ТБ за пять лет — это много для оперативной памяти, но немного для дисковой БД. Шардирование пока не обязательно, но об этом стоит упомянуть как о точке роста.
Пропускная способность
Если редиректов 3000 QPS, а ответ — лёгкий HTTP-редирект (~500 байт с заголовками), то исходящий трафик:
bandwidth = 3000 QPS * 500 B = 1.5 МБ/с
= ~12 Мбит/сДля фотосервиса картина другая: ответ — изображение по 1–2 МБ, и тот же QPS даёт гигабиты в секунду, откуда сразу следует необходимость CDN.
Как работает под капотом
Эти оценки нужны, чтобы обосновать компоненты. Большой объём хранилища -> шардирование и/или объектное хранилище. Высокая пропускная способность на статике -> CDN и кэш у границы. Дешёвый редирект -> можно держать горячие ссылки прямо в кэше в памяти. Цифры превращаются в стрелки на вашей схеме.
Степени двойки для памяти
| Единица | Примерно |
| КБ | 10^3 байт |
| МБ | 10^6 байт |
| ГБ | 10^9 байт |
| ТБ | 10^12 байт |
Частые ошибки
- Путать биты и байты при оценке канала (×8).
- Забыть про заголовки и метаданные в размере записи.
- Не связать цифры с компонентами — оценка ради оценки.
Итог
- Хранилище = записей/сутки × размер × горизонт (год/5 лет).
- Пропускная способность = QPS × размер ответа; помните про ×8 для бит.
- Большой объём -> шардирование/объектное хранилище; тяжёлый трафик -> CDN.