Выбор ответа Senior Разборы систем спрашивают часто обновлено
Лента и аккаунты-звёзды
Вопрос
Лента строится fan-out on write: при публикации id поста записывается в ленты всех подписчиков. У автора 30 млн подписчиков. Что разумнее?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Гибрид: посты звёзд подмешивать в ленту при чтении. Раскладка одного поста в 30 млн лент это 30 млн записей и минуты задержки, а таких авторов немного.
Варианты ответа
- Оставить fan-out on write для всех и добавить воркеров
- Перейти на fan-out on read для всех пользователей
- Ограничить публикации таких авторов раз в час
- Гибрид: посты звёзд подмешивать в ленту при чтенииправильный ответ
Разбор
Раскладка одного поста в 30 млн лент это 30 млн записей и минуты задержки, а таких авторов немного. Гибрид оставляет быструю раскладку при записи для обычных авторов и дешёвую запись для звёзд, чьи посты подмешиваются при чтении. Только воркеры не решают проблему объёма записи. Fan-out on read для всех делает чтение ленты дорогим для каждого пользователя. Ограничение публикаций это не инженерное решение.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.