Size: a a a

2019 December 04

SP

Sergey Prokhorov in ErlangRus
Сергей Иванов
ускорить erlang скалой? это как?
не помню деталей, я не в этой команде работал. Но вроде бы монолитный сервис чата распилили на несколько сервисов, часть из которых на Scala. Ускорить по CPU вроде бы
источник

DF

Denis Fakhrtdinov in ErlangRus
Нет, задача была ускорить MUC.
источник

DF

Denis Fakhrtdinov in ErlangRus
Который сильно мутабелен.
источник

DF

Denis Fakhrtdinov in ErlangRus
Особенно огромные комнаты.
источник

DF

Denis Fakhrtdinov in ErlangRus
Примерно то, что описано в блоге дискорда.
источник

DF

Denis Fakhrtdinov in ErlangRus
Кидали ссылку совсем недавно.
источник

YZ

Yuri Zhloba in ErlangRus
С мук проблема есть, но не из-за мутабельности стейта, а из-за того, что данные трудно бродкастить. На некотором уровне они уже не влезают в гигабитную сеть.
источник

YZ

Yuri Zhloba in ErlangRus
Врочем, есть мнение, что комнаты на 100к участников не особо нужны :)
источник

DF

Denis Fakhrtdinov in ErlangRus
Уж теперь да.
источник

YZ

Yuri Zhloba in ErlangRus
Подход дискорда мы повторили. И комната на 50к участников с рейтом сообщений 5 в секунду работает на одной ноде.
источник

YZ

Yuri Zhloba in ErlangRus
Дальше мы уперлись, но варианты еще есть.
источник

СИ

Сергей Иванов in ErlangRus
Yuri Zhloba
Подход дискорда мы повторили. И комната на 50к участников с рейтом сообщений 5 в секунду работает на одной ноде.
вслысле сделали список на rust?
источник

YZ

Yuri Zhloba in ErlangRus
Если будет понимание, что нужны комнаты еще больше, то сделаем.
источник

YZ

Yuri Zhloba in ErlangRus
Сергей Иванов
вслысле сделали список на rust?
Нет
источник

СИ

Сергей Иванов in ErlangRus
Yuri Zhloba
Нет
а  в чем повторение подхода?
источник

YZ

Yuri Zhloba in ErlangRus
У них в блоге был описан подход к бродкасту в кластере.
источник

YZ

Yuri Zhloba in ErlangRus
Вместо того, чтобы просто отправлять сообщения на 100к процессов, разбросаных по 10 нодам, отправляется по одному сообщению на каждую ноду, вместе со списком пидов-получателей. И дальше делается бродкаст уже в рамках одной ноды.
источник

YZ

Yuri Zhloba in ErlangRus
Это для чатовых комнат прям must have
источник

ML

Maksim Lapshin in ErlangRus
похоже на проблему, которую мы решали с массовым обслуживанием клиентов по rtmp.  Там каждый кадр надо рассылать всем и под каждого клиента его модифицировать.

Т.е. при 25 fps, получается 40 кадров в секунду и на 3000 клиентов получается 120 тыс сообщений в секунду (с большим пейлоадом и персональной обработкой каждого сообщения).

Учитывая, что таргет стоит уже давно в районе 10-15 тыс клиентов, то понятно что надо было думать как жить с 600 тыс сообщений в секунду.

А потом все перешли на HLS и количество сообщений в системе упало в 200 раз =)
источник

YZ

Yuri Zhloba in ErlangRus
Да и для рассылки presence тоже актуально. У многих большой список контактов.
источник