Как стать автором
Обновить

Go Tarantool: как построить Key-value-хранилище на сотни тысяч запросов в секунду

Время на прочтение7 мин
Количество просмотров14K
Всего голосов 44: ↑42 и ↓2+45
Комментарии7

Комментарии 7

ручка-логин - как же меня вымораживает слово "ручка" в таком контексте. Не вижу ни одной причины, что бы не использовать слово "хендлер" ну или прямой перевод "функция обработчик".

А на голом Lua такое нельзя было реализовать?

Цифры впечатляют! Но не очень понятно, куда делась реляционная БД, зачем кэшу персистентность и как будет организован sync)

Аналогичный вопрос. Вначале несколько раз упомянута реляционка, но потом про неё ни слова. Непонятно.

И уж если про кэш говорить, то хорошо бы сравнить с другими аналогами типа Memcached или Couchbase и т. д.

Так же непонятно, какая часть данных кэшируется. Если вся, то по смыслу это уже и не кэш вовсе, а просто in-memory DB.

Непонятно, чем обычная BD на кластере хуже.

А лучше сразу с dragonfly db

Похожую схему делали с кластером редиса, в принципе не могу сказать, что в чем-то концептуальные отличия, так же сваренный синхронизатор, структура БД для хранения, и индексы. Коллеги просто не стали описывать типовые процедуры прогрева редиса в первый раз, перезапись в случае сбоев из БД и так далее. Персистентность нужна для того, чтобы не приходилось кэш обнулять и перезаписывать, это довольно затратная по ресурсам операция, типа "а давай-ка 100500 записей удалим, а то есть подозр, что какие-то из них битые, и запишем заново" - и хренак, на 4-6 часов у тебя инстанс вылетает из пула, перезаписывается, и так все по очереди (мы же не дурачки, да, в одном кеше все хранить, нужен кластерок). И тут тоже свои песни возникают, типа "а если за время синхронизации еще записей появилось? А если изменилось что-то в бд? - то есть еще возникает некая промежуточная шина, в которую на время обновления пишутся события обновления, чтобы потом после полной перезаписи их раздать, и так по каждому инстансу кеша. Короч, решение скажем так сложнее, чем тцт описано, но у ребят явно не было цели описать все, скорее "а как заманить к ним в команду клиента, которому это надо".

Объясните почему нужен отдельный сервис для авторизации и каждый сервис в него обращаться. Не проще ли сделать это последовательными шагами и сделать прокси авторизации?

Зарегистрируйтесь на Хабре, чтобы оставить комментарий