Разработайте сервис для подсчета лучших k прослушанных песен за последние 24 часа - PullRequest
0 голосов
/ 07 мая 2018

Это вопрос проектирования системы.

Предположим, у нас есть служба, которая может уведомить нас о прослушивании песни. Давайте создадим новый сервис, который сможет вернуть K самых популярных песен за последние 24 часа. Предположим, у нас есть ~ 1 миллиард песен и ~ 200 миллионов пользователей.

Сфокусируйте свой ответ на кешировании, структурах данных и разработке схемы базы данных.

Продолжение: как мы можем разделить его по жанрам? Например. Что, если я хочу, чтобы лучшие k самых слушаемых рок-песен за последние 24 часа?

Действительно любопытно, что вы, ребята, скажете / что вы, ребята, думаете! Не нужно давать супер идеальное решение, идеи тоже хороши.

Ответы [ 2 ]

0 голосов
/ 07 мая 2018

Как правило, это похоже на проект системы рекомендаций.

Рекомендательные системы

Вы можете просто подумать об алгоритме кучи, используя maxheap для извлечения последних k элементов и улучшения, создавая сложные ограничения.

0 голосов
/ 07 мая 2018

Похоже, вы хотите получить лучшие k прослушиваемых песен

Вы должны рассмотреть алгоритм Мисры Гриса Мисры Гриса

Он хранит массив из k элементов и их оценочных значений, для вас важно то, что он хранит наиболее частые k элементов в потоке (ваш список уведомленных песен)

...