215 похожих чатов

Всем привет! Где можно почитать про нюансы мультитрединга в тарантуле? Хочу понять

какие операции будут блокирующими и пределы того насколько можно абьюзить биндинги растовых модулей для шустрого выполнения. Глобальный план запихнуть максимум приложения внутрь тарантула.

Аппа похожа на слегка замороченный балансировщик и нужен быстрый IO в независимых тредах которые будут общаться с подключенными клиентами и иногда что то писать в хранилище (:

6 ответов

25 просмотров

Тредов в тарантуловском Lua внутри одного инстанса нет.

не ходите в box из других тредов, избегайте мьютексов в tx. Помните, что тарантульные родные треды крутят свои ev, с ними взаимодействовать нужно через механизмы ev

Igor-Rekun Автор вопроса

Понял. С фиберами знаком, у нас очередь на них, но сейчас нужно чуть сложнее задачу решить. Если грубо - у меня выбор между двумя вариантами: 1. Ембедить KV внутрь аппы и писать все недостающее самим (долго и сложно) 2. Ембедить аппу внутрь Тарантула. Под ембеддить апу внутрь я имею присоседить (внутри самого модуля) к Тарантулу UDP сервер который сможет оперативно принимать мессаги и без лишнего сетевого запроса иногда дергать что то через вызов функции внутри тарантула. Иногда могут случаться вычисления которые не будут дергать Тарантул и хочется чтоб они не блокировали основной тред который фиберы откатывает. Такого поведения мало и если можно не выносить это в отдельный сервис то будет очень хорошо

Заведите себе отдельный демон на том же хосте и дёргайте Тарантул только когда надо.

Igor-Rekun Автор вопроса
Vladimir Voznesensky
Заведите себе отдельный демон на том же хосте и дё...

Спасибо, тогда выезжает в отдельный сервис видимо)

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Карта сайта