Продолжаем серию технических постов по разработке и рефакторингу ГолдВойса. Прошлый пост: очередь в Redis и рефакторинг Ленты новостей.

У страха глаза велики. Достаточно начать делать какие-то вещи и все постепенно встает на свои места. Переработаны очереди на обновление информации пользователей, постов и комментариев. Если раньше запись о необходимости обновления записывалась в саму базу и ожидало обработки, то теперь очередь идет в стандартный набор (set) Redis. Любая попытка дополнить его сопровождается проверкой на наличие в наборе, таким образом не происходит повторная запись и перегрузка очереди. После этого обработчик очереди стал дышать посвободнее 🏂

Как видно — до сих пор страдает учет голосов за посты и уведомления. Но состояние гонки постепенно решается. Обработка очередей будет вынесена на отдельную машину, но для этого надо переписать работу с нодой.
Раньше вся работа строилась на веб-сокетах. Учитывая, что тот же Стим отказался от них (причины тривиальны — сложность внедрения кэширования, кластеризации, отражения ddos-атак на веб-сокетах), стоит ожидать подобного же решения и от Голоса. Поэтому мы приступили к написанию максимально простого и быстрого jsonrpc php клиента к Graphene блокчейнам. Это будет простой класс работающих на сокетах. Что может быть лучше?
Учитывая текущие очереди стоит заняться переносом учета голосов пользователей за посты и уведомления в redis. Но для корректной реализации подобных изменений нужно добавить слой пользователей в redis. Вот тут и встает вопрос — как это сделать?
Хранить всю информацию и настройки профиля в redis, освободив старую инфраструктуру от этой задачи? Или все же стоит добавить redis как прослойку к пользовательским данным.
Лента новостей показала себя хорошо, она реализована на Sorted Sets через ZADD, ZCOUNT и ZREVRANGEBYSCORE. Для каждого пользователя создается свой сортированный набор и наполняется йд постов. Таким образом можно делать линейные выборки с подзагрузкой ленты и получать количество новых записей в персональной ленте новостей.
🌊 Шторм еще силен, но уже растерял свою пиковую силу. Рассвет грядет.
Оригинал поста создан 11-01-2018 12:58:30 UTC
12917095 Tandemus!Поздравляю с Днем рождения!Поддержите!
12917097 TG-канал "Заповедника Сказок"
12917178 Ночь.Ай-Петри.
12917280 Время знаков препинания
12917302 Gimmer.Децентрализованная платформа для криптоторговли.Обзор ico
12917323 Главная
12917501 ТЕМА - Трейлер нашего канала
12917503 Ребенка назвали Биткоин. Оригинально...
12917504 Работа на эстафету "Птицы по четвергам". Птица смотрящая ввысь...
12917567 Эстафета цвета - Зелёный.
12917634 Заработай Криптовалюту и бриллианты
12917671 Технический пост: переработка очередей
12917705 Январь 2018 г. Местные пейзажи.
12917739 Ты движешься к своей цели?!
12917828 Как хочется в балтийское бесснежье..
Прежде чем писать комментарий прочитайте О ПРОЕКТЕ
Поддержите проект донатом!