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

Реплики для ленты

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

Условие

Социальная лента: 4000 запросов/с, 90 % — чтения. Кэш в этом продукте запрещён (данные меняются каждую секунду), поэтому единственный способ снять чтения с базы — реплики чтения. Реплика принимает только чтения и должна быть связана с primary; сервер приложения делит чтения поровну между живыми репликами. Записи идут только в primary. По вечерам нагрузка растёт в 1,3 раза.

Ограничения

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

Требования

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

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

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

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

    60 s · 4,000 rps · R 90 / W 5 / S 5 %

  2. 2Вечерний пикВсплеск

    С 20-й секунды на 60 секунд трафик растёт в 1,3 раза (5200 запросов/с).

    100 s · 4,000 rps · R 90 / W 5 / S 5 % · ×1.3 с 20-й с на 60 с

Блоки

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

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

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

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