Когда популярность сервера
Midjourney от Discord резко возросла, он натолкнулся на : ограничение в 1 миллион участников. Это история о том, как небольшая команда инженеров Discord превратила эту проблему в выдающееся достижение.Задача: Представьте себе виртуальное пространство, настолько популярное, что оно трещит по швам. Будучи одним из самых быстрорастущих серверов Discord за всю историю,
Midjourney столкнулся именно с таким сценарием, поскольку количество участников росло геометрически. Discord платформавремени, работающая на
Erlang/Elixir, затрещала по швам под огромным давлением. С каждым новым участником сложность и нагрузка росли в геометрической прогрессии.Решения:
Чтобы свести к минимуму перегрузку, инженеры внедрили "
пассивные" соединения, гарантирующие, что неактивные пользователи не будут создавать лишней нагрузки.Переработка системы реле позволила более эффективно распределять работу за счет более избирательной обработки пользовательских данных.
Параллельная обработка: Используя ETS Erlang, команда разработчиков обеспечила параллельную обработку для таких тяжелых операций, как оповещение всех пользователей что значительно снизило нагрузку на систему.
ETS - инструмент для хранения объектов Elixir и Erlang в памяти. Он способен хранить огромные объемы данных и предоставляет доступ за фиксированное время.
Не все было гладко. Некоторые многообещающие идеи, такие как разгрузка Manifold, дали обратный эффект, увеличив нагрузку на сервера.
↪️ Читать подробнее
@csharp_ci
