Nikolay
Не будет ли массив слишком большим?
Ayrat
Сваливать индекс в бд. Но вообще если ты телега, то ты не бомж и можешь заеебенить сервак с 10тб оперативы
Ayrat
Ты рассуждаешь о телеге со своей колокольни. Ты определись ты там гугл пишешь или фановый проект
Nikolay
Не, просто говорят про акторы, масштабирование
Nikolay
Мне вот интересно, насколько реально сделать на акторах условную телегу
Nikolay
Без БД)
Nikolay
Телегу в оперативке
Ayrat
Nikolay
Ну 200кк юзеров ты же не уместишь в массиве
Ayrat
Поясню. Даже без роста юзербазы каждый юзер генерит тонну сообщений в день. Получается нам без роста бизнеса надо каждый день наваливать новых планок памяти чтобы хранить историю сообщений??
Ayrat
Ну 200кк юзеров ты же не уместишь в массиве
Ну я не тупой и возьму мемкшд или редис
Nikolay
Ну это можно хранить в персистентных акторах во внешнем хранилище
Ayrat
Ну это можно хранить в персистентных акторах во внешнем хранилище
Полная херня, ты в евентсорсд индексы не выставишь
Ayrat
Каждой технологии свое применение. Акторы бд не заменяют
Ayrat
Возможно я слишком агрессивно пишу я тут подумал
Ayrat
Я не хотел!
サイトー
Особенно точка после нет
Nikolay
А вопрос тогда, стоит ли делать телегу на акторах?
Nikolay
Какие это плюсы даст
Ayrat
А вопрос тогда, стоит ли делать телегу на акторах?
Почему нет? Но историю сообщений кидай в бд, поиск по ней человеческий сделай. Историю на последнюю тыщу сообщений в самом акторе, ин мемори. Смысл актора отобразить стейт юзера. Его сеттинги, друзей, чаты, работать как адрес для приёма сообщений и отправки нотификаций
Ayrat
Началось самокопание
это всё толерантный гейропский воздух.
Vasily
это всё толерантный гейропский воздух.
Скоро начнешь фулстак жс, чую
Nikolay
А вопрос тогда, стоит ли делать телегу на акторах?
@VagifAbilov а что ты думаешь по этому поводу? И как ты видишь это?
Nikolay
Или можно сделать отдельного актора, которого назвать, например, @omgszer, и который будет хранить твой id?
Ayrat
А поиск юзера, например, по username?
я выше ж написал, можно создать индекс акторов по именам. Рост линейный. Растёт юзербаза, растёт индекс.
Igor
https://twitter.com/k_cieslak/status/1091104683001810944?s=12
Что-то накручивают и накручивают. А один фиг приходится на LSP уходить из-за тормозов
Nikolay
я выше ж написал, можно создать индекс акторов по именам. Рост линейный. Растёт юзербаза, растёт индекс.
Ну индекс ты имел ввиду будет лежать отдельным стейтом - массивом? Просто он же слишком толстым будет
Ayrat
Т.е. пока у тебя 10к пользователей, думать не надо. Как будет больше, разбиваешь индекс а-ля дерево по первым буквам, каждую букву в отдельный индекс, продолжаешь
Ayrat
Чой это он толстым будет
Nikolay
опять ты начинаешь в гугл играть)))
Ну я же говорю об условном телеграме :)
Nikolay
Где уже больше 200кк юзеров
Ayrat
Ну я же говорю об условном телеграме :)
В условном телеграме я бы взял готовое решение
Ayrat
и хранил индекс там
Ayrat
сверху бы завесил актором для доступа
Nikolay
Ну помоему акторы тогда как-то притянуты за уши получаются
Vasily
Карочи, @Dolfik , заканчивай страдать херней. Данные лучше хранить в виде, который наиболее эффективен для их использования. История чата - это база. Хочешь, можешь в тот же редис засунуть
Nikolay
Щас немного не про историю речь
Roman
да, вот это вот пью
Если найдешь, попробуй Mena Dhu Stout
Vasily
Щас немного не про историю речь
Генерить актор на пачку сообщений- такое себе
Nikolay
Генерить актор на пачку сообщений- такое себе
Я щас говорю про поиск юзера по username
Vasily
Ну каждый пользователь - актор
Vasily
Это норм
Nikolay
Ну а как нужного найти?
Vasily
Сделай актора с индексом
Ayrat
Ну а как нужного найти?
индекс имен акторов
Vasily
Индекс в базе?
Это в памяти можно
Ayrat
Индекс в базе?
можно в памяти. Редис - это ин мемори БД
Ayrat
Я честно не понял смысл гифки :)
Nikolay
Ну этот индекс должен же быть персистентным?
Vladislav
Я честно не понял смысл гифки :)
топишь сервак планками рам как локомотив углем
Nikolay
очень желательно!!1
Мне кажется, что это всё будет очень медленно
Vasily
Мне кажется, что это всё будет очень медленно
Индекс ты поднимаешь на старте актора
Vasily
При добавлении/удалении персистишь стейт
Nikolay
Делать его immutable не очень будет, да?
Vasily
У тебя индекс - это стейт актора
Vasily
Приходит сообщение - добавился пользователь
Vasily
Обновляешь
Vasily
Удалился - обновляешь
Vasily
Изменил имя - обновляешь
Nikolay
Ну если это будет immutable dictoinary
Ayrat
Мне кажется, что это всё будет очень медленно
Можно сделать евентуальную консистенцию))) При создании юзера закидываешь его в редис и оптимистично используешь как будто юзер уже добавился (можно с флагом для верности, что юзер ещё не персистентно сохранён), параллельно пытаешься сохранить в БД и меняешь флаг юзера при успехе.
Vasily
Ну ептыть
Nikolay
Вообще, это как-то всё выглядит, как попытка написания собственной базы, не?
Ayrat
если ты телега
Ayrat
а если ты по фану пишешь, то и словарь ин-мемори - отличный выбор
Крылатый
Берёшь, корочи, PHP/MySQL и пишешь телегу на огромном серваке...