Выбор ответа Senior Разборы систем спрашивают часто обновлено

Лента и аккаунты-звёзды

Вопрос

Лента строится fan-out on write: при публикации id поста записывается в ленты всех подписчиков. У автора 30 млн подписчиков. Что разумнее?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Гибрид: посты звёзд подмешивать в ленту при чтении. Раскладка одного поста в 30 млн лент это 30 млн записей и минуты задержки, а таких авторов немного.

Варианты ответа

  1. Оставить fan-out on write для всех и добавить воркеров
  2. Перейти на fan-out on read для всех пользователей
  3. Ограничить публикации таких авторов раз в час
  4. Гибрид: посты звёзд подмешивать в ленту при чтенииправильный ответ

Разбор

Раскладка одного поста в 30 млн лент это 30 млн записей и минуты задержки, а таких авторов немного. Гибрид оставляет быструю раскладку при записи для обычных авторов и дешёвую запись для звёзд, чьи посты подмешиваются при чтении. Только воркеры не решают проблему объёма записи. Fan-out on read для всех делает чтение ленты дорогим для каждого пользователя. Ограничение публикаций это не инженерное решение.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.