Size: a a a

2020 June 19

P

Pavel in Tarantool
источник

OK

Oleg Koshovetc in Tarantool
ah yes, memes
источник

EK

Eduard Korolev in Tarantool
я так понимаю вы говорите про многопоточность?
источник

MP

Mike Po in Tarantool
Konstantin Nazarov
для etcd3 нужен драйвер. его можно тоже включить, но там protobuf и все такое
там есть grpc-gateway, который может мапить json в протобаф, собственно как и сделано у @Romkart
источник

EK

Eduard Korolev in Tarantool
объясните мне, как луа работает. Т.е если я из php делаю запрос select, то у меня следующий request из php не получит ответ, пока первый не отработает?
источник

KN

Konstantin Nazarov in Tarantool
Mike Po
там есть grpc-gateway, который может мапить json в протобаф, собственно как и сделано у @Romkart
а что это за гейтвей? он часть etcd?
источник

AK

Alexey Kuzin in Tarantool
Eduard Korolev
объясните мне, как луа работает. Т.е если я из php делаю запрос select, то у меня следующий request из php не получит ответ, пока первый не отработает?
Может получить раньше чем первый)
источник

R

R-omk in Tarantool
Konstantin Nazarov
а что это за гейтвей? он часть etcd?
да
источник

AK

Alexey Kuzin in Tarantool
Eduard Korolev
объясните мне, как луа работает. Т.е если я из php делаю запрос select, то у меня следующий request из php не получит ответ, пока первый не отработает?
Если вы про параллельные реквесты
источник

AK

Alexey Kuzin in Tarantool
Если у вас в коде на php  два последовательных запроса с синхронным ожиданием, то да, второй будет ждать
источник

YD

Yaroslav Dynnikov in Tarantool
R-omk
https://t.me/tarantoolru/123696

вот ,  там транзакции прикольные ,  http json полностью ложится на то что proto описано
.
источник

EK

Eduard Korolev in Tarantool
нет я про разные php запросы
источник

EK

Eduard Korolev in Tarantool
тогда я не понимаю, о чем речь идет в переключении контекста и зачем yield нужен в тарантуле?
источник

AK

Alexey Kuzin in Tarantool
Eduard Korolev
тогда я не понимаю, о чем речь идет в переключении контекста и зачем yield нужен в тарантуле?
Если вы пользуетесь sql,  про йилды вам думать не нужно
источник

AK

Alexey Kuzin in Tarantool
йилды нужны в Луа-коде, исполняемом внутри Тарантула, так он работает
источник

MM

Max Melentiev in Tarantool
Eduard Korolev
объясните мне, как луа работает. Т.е если я из php делаю запрос select, то у меня следующий request из php не получит ответ, пока первый не отработает?
луа работает в 1 поток. на нем исполняются много фаберов, которыми луа жонглирует. каждый хттп запрос или call/eval - отдельный файбер. пока 1 файбер делает io, управление передается другим.
источник

AK

Alexey Kuzin in Tarantool
Eduard Korolev
тогда я не понимаю, о чем речь идет в переключении контекста и зачем yield нужен в тарантуле?
Передача управления между корутинами (файберами) происходит либо при вызове некоторых функций Тарантула, либо вручную при вызове йилд
источник

MM

Max Melentiev in Tarantool
Max Melentiev
луа работает в 1 поток. на нем исполняются много фаберов, которыми луа жонглирует. каждый хттп запрос или call/eval - отдельный файбер. пока 1 файбер делает io, управление передается другим.
если 1 файбер долго не отдает управление, то другие, которым надо совсем немного времени цпу, будут ждать завершения долгого файбера, чтобы начать исполняться. для этого надо добавлять йилды в долгие вычисления
источник

OK

Oleg Koshovetc in Tarantool
Eduard Korolev
тогда я не понимаю, о чем речь идет в переключении контекста и зачем yield нужен в тарантуле?
представьте, что у вас есть спейс на пару лямов записей
представьте, что вы хотите получить количество записей, в которых какой-то параметр содержит в себе подстроку
представьте, что вам не очень страшно, если во время этого скана некоторые записи будут удаляться (допустим, вам важно только примерное количество записей)

при этом у вас есть еще много запросов, которые делают простой get по индексу, который работает очень быстро

если вы сначала запустите большой SELECT с LIKE-ом, то все запросы, которые хотят сделать простой get по индексу, будут ждать, пока скан с LIKE-ом не закончится (а это может занимать несколько секунд)

если вместо SQL вы будете использовать lua с периодическими yield-ами, то запросы на get быстро получат управление, получат свои данные и отправятся работать дальше
источник

EK

Eduard Korolev in Tarantool
ну значит правильно понимаю, если я делаю длинный цикл на луа в одном запросе, мне нужно беспокоиться о том, чтобы кинуть yield, иначе другие более быстрые запросы все зависнут, так как будут ждать этот 1 длинный цикл
источник