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

А есть какие-то решения для latency чувствительных задач внутри tarantool?

(к примеру если нужно rpc или сетевые вызовы делать внутри instance)

Узкое место - event loop верно ? Как это можно обойти ?

11 ответов

99 просмотров

вынести всю работу в отдельные системные треды, а тред event loop оставить только для транспорта

Kirill-Shilov Автор вопроса
Andrei 🦉 Sergeev
вынести всю работу в отдельные системные треды, а ...

вот в эту сторону и смотрю А есть примеры ? :)

Kirill Shilov
вот в эту сторону и смотрю А есть примеры ? :)

https://github.com/tarantool/kafka вот пример, как можно вынести работу со сторонней синхронной либой, чтобы она event loop не кончила

Kirill-Shilov Автор вопроса
Andrei 🦉 Sergeev
https://github.com/tarantool/kafka вот пример, как...

Еще такой момент - если сам модуль написан на rust (не LUA) можно ли: 1. Средставми OS создать отдельный поток для обработки 2. Взаимодействовать с этим потоком из любого обработчика ? Без написания биндингов к C api тарантула

Kirill Shilov
Еще такой момент - если сам модуль написан на rust...

Пишите либу, экспортируете ее api через ffi Далее из луа дергаете init своей либы, который создает все необходимые потоки / сущности В рамках event loop из lua периодически дергаете апи своей либы что бы отправить запросы / получить ответы

Kirill-Shilov Автор вопроса
Andrei 🦉 Sergeev
Пишите либу, экспортируете ее api через ffi Далее ...

Есть какая-то защита или это пройдёт? 1. Пишем модуль который делает какой-то сетевой вызов 2. Далее внутри транзакции делаем вызов этого модуля. То есть по сути получается сетевой вызов внутри транзакции. Пройдёт такое ?

Kirill Shilov
Есть какая-то защита или это пройдёт? 1. Пишем мо...

либо весь евентлуп будет ждать завершения сетевого вызова, либо разбивать взаимодействие между несколькими вызовами из евнтлупа, а значит никакой транзакционности

Kirill-Shilov Автор вопроса
Andrei 🦉 Sergeev
либо весь евентлуп будет ждать завершения сетевого...

Да я об этом и говорю. То есть по сути если мы делаем какую-то доп функциональность через отдельный модуль, то появляется возможность делать сетевой вызов внутри транзакции (без использования mvcc) и блокировки евент пула ?

Kirill Shilov
Да я об этом и говорю. То есть по сути если мы дел...

нет, либо блокировка евентлупа на все время вызова в транзакции,либо без блокировки, но вне транзакции

Kirill-Shilov Автор вопроса
Andrei 🦉 Sergeev
нет, либо блокировка евентлупа на все время вызова...

Ну то есть мы делаем сетевой вызов и блокируем евент пул ?

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
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
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
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
Карта сайта