Польза несовершенства на примере BlueSky BlueSky — соцсеть, созданная как альтернатива Twitter. Принцип работы тот же: пользователи создают профили, подписываются на других пользователей и видят их посты в своих лентах. Давайте посмотрим, как это работает изнутри и почему часть постов не доходит до подписчиков — и это нормально. 🔵 Таблица Timeline — те самые ленты постов — разделена на несколько шардов, где для каждого юзера выделена своя партиция. Всего на 32 млн пользователей приходится несколько сотен шардов. 🔵 Когда кто-то выкладывает новый пост, он разлетается по его подписчикам и встраивается в таблицы, из которых формируются их ленты. Одновременно старые сообщения выводятся из них. Этот процесс работает нормально, если пользователи не шалят и не подписываются на всех подряд. Но если кто-то подписывается на тысячи или сотни тысяч аккаунтов, начинаются проблемы. 🔵 Его лента постоянно обновляется, и это создает повышенную нагрузку не только на его партицию, но и на соседей по шарду. При этом сам пользователь (если это и правда человек, а не бот) никогда не сможет прочитать все сообщения в ней. Значит, и BlueSky незачем выводить все-все новые посты — достаточно просто, чтобы в ленте регулярно появлялся новый контент. Так, чтобы избежать перегрузки, BlueSky внедрили такие понятия: 🔵 разумное ограничение (reasonable limit) на число подписок — то есть сколько подписок нужно, чтобы лента стабильно обновлялась и оставалась читабельной. 🔵 `loss_factor` — процент новых сообщений, которые не попадут в ленту пользователя. Он рассчитывается по формуле min(reasonable_limit/num_follows, 1). Допустим лимит у нас 2000, а подписан пользователь на 8000 аккаунтов. В этом случае `loss_factor` = 0,25, то есть только 25% новых постов попадут в его ленту. Внедрение таких запрограммированных потерь помогло значительно поднять производительность и снизить задержки. Как вам это решение? ❤️ — Изящно! 🌚 — Можно было и получше придумать…
Польза несовершенства на примере BlueSky BlueSky — соцсеть, созданная как…
Из этого канала
- #1768Про данные, будущее и поиски работы Любой бизнес работает с данными — хоть…
Про данные, будущее и поиски работы Любой бизнес работает с данными — хоть какими-то.
- #1769Вебинар «Как развиваться в профессии инженера данных?» — сегодня! Подключайтесь…
Вебинар «Как развиваться в профессии инженера данных?» — сегодня! Подключайтесь в 18:00 по Мск, чтобы узнать, какие навыки помогут построить карьеру в…
- #1770"Вайб-кодинг в аналитике? Слышали про вайб-кодинг? Суть явления описал Андрей…
"Вайб-кодинг в аналитике? Слышали про вайб-кодинг? Суть явления описал Андрей Карпатый — оригинальный твит на скрине, а ниже наш перевод: Есть новый вид…
- #1765Как развиваться в профессии инженера данных? Совсем скоро стартует новый поток…
Как развиваться в профессии инженера данных? Совсем скоро стартует новый поток курса «Инженер данных» — тот самый, где студенты могут получить не только…
- #1763LEFT JOIN открыл вакансии инженера данных для студентов karpov.соurses Это…
LEFT JOIN открыл вакансии инженера данных для студентов karpov.соurses Это значит, что все оплатившие обучение на курсе «Инженер данных» до 27 марта, смогут…