Все задачи
Средняяsystem-designcachingread-heavy

Кэш

Принято: —Решили: 0

Условие

Лента новостей: 3000 запросов в секунду, почти всё — чтения (85 %). Даже самая большая база данных держит не больше 3000 единиц в секунду, а запись стоит 3 единицы — значит, чтения база сама не вытянет. Подключите к серверу приложения кэш: часть чтений (60–95 % в зависимости от объёма памяти) не доходит до базы. Промахи кэша идут в базу. Нагрузку распределите балансировщиком по нескольким группам серверов.

Ограничения

  • p95 ≤ 250 мс, ошибки ≤ 0,1 %, бюджет $2800/мес, ≤ 5 инстансов на узел.

Требования

СимуляцияПостроить с нуля
p95
≤ 250 ms
Ошибки
≤ 0.10 %
Бюджет
$2,800/mo
Пользователей
300,000
Ваша архитектура стоит$0 / $2,800

★ в бюджете · ★★ ≤ 75 % · ★★★ ≤ 50 % бюджета

Сценарии (проверяются по порядку)
  1. 1ЛентаНагрузка

    3000 запросов/с в течение 60 секунд: 85 % чтений, 5 % записей, 10 % статики.

    60 s · 3,000 rps · R 85 / W 5 / S 10 %

  2. 2Срочная новостьВсплеск

    С 30-й секунды на 30 секунд трафик растёт в 1,5 раза (4500 запросов/с).

    90 s · 3,000 rps · R 85 / W 5 / S 10 % · ×1.5 с 30-й с на 30 с

Блоки

Нажмите, чтобы добавить, или перетащите на холст. Соединяйте блоки, протягивая от правой точки к левой.

ИИ-наставник

Застряли? Возьмите подсказку — наставник объясняет идею, но никогда не выдаёт решение.

Решите задачу, чтобы открыть разбор.