Size: a a a

2020 November 27

ИЕ

Илья Ермолин... in Tarantool
Дмитрий
А есть что-то для тех, у кого нет Enterprise?
Для эксперимента собирали для открытой версии пакет lua oci - запросы в целом работают.
Но вот поддержки спец структур там я не видел (не интересовался)
Вот про этот пакет речь: luasql.oci8
источник

Д

Дмитрий in Tarantool
источник

Д

Дмитрий in Tarantool
Или где искать?
источник

ИЕ

Илья Ермолин... in Tarantool
luarocks-5.1 install LuaSQL-OCI8
источник

Д

Дмитрий in Tarantool
Спасибо. Если кто-то еще варианты предложит, буду рад. Пока пошел изучать что тут можно сделать 👍🏻
источник

NK

Nick Karlov in Tarantool
Боюсь, что этот модуль будет блокировать event loop тарантула
источник

Д

Дмитрий in Tarantool
Т.е. тот, что Enterprise не блокирует?
источник

NK

Nick Karlov in Tarantool
Не блокирует
источник

NK

Nick Karlov in Tarantool
Написание модулей для тарантула, которые работают с сетью и не блокируют event loop, требует отдельных приседаний. Чтобы было понятно, о чем речь, посмотрите модуль tarantool kafka
источник

MF

Michael Filonenko in Tarantool
не, кафку не надо
источник

Д

Дмитрий in Tarantool
Есть пример лучше? Т.е. где посмотреть "приседания".
источник

ИЕ

Илья Ермолин... in Tarantool
мы для себя решили - в отдельных роутерах операции блокирующие запускать (это нечасто для синхронизации или начальной загрузки нужно).
Хотя конечно эффективнее по правильному делать. У нас есть возможность в рамках запросов к TNT не обращаться в оракл.
источник

AK

Alexey Kuzin in Tarantool
Дмитрий
Есть пример лучше? Т.е. где посмотреть "приседания".
Ну вот, например, использование coio_call в smtp: https://github.com/tarantool/smtp/blob/a5f4b28582673ee00cfe4dad45df547343b4e5d0/smtp/smtpc.c#L234
источник

AK

Alexey Kuzin in Tarantool
Иногда переходится переписывать какие-то участки кода, чтобы встроить выполнение во внтуренний цикл Тарантула
источник

Д

Дмитрий in Tarantool
Спасибо. Посмотрим.
источник

MF

Michael Filonenko in Tarantool
Дмитрий
Есть пример лучше? Т.е. где посмотреть "приседания".
Если библиотека умеет работать с сокетом "асинхронно", то можно использовать coio_wait
Например libpq (postgres), hiredis так умеют
https://github.com/tarantool/pg/blob/master/pg/driver.c#L188

Таким образом работа coio_wait будет илдить текущий файбер, который его вызвал, и весь коннектор будет работать в tx потоке тарантула

Если либа не умеет в асинхронные сокеты придется пользоваться coio_call, который будет выполнять блокирующую операцию в отдельном треде.
источник

VG

Vladislav Grubov in Tarantool
Дмитрий
Спасибо. Посмотрим.
если вы можете реализовать протокол самостоятельно, то можно посмотреть на работу с неблокирующими сокетами тарантула в луа+ffi и реализацию бинарного протокола. Пруф, что это возможно сделать можно посмотреть тут: https://github.com/moonlibs/connection-scribe или тут https://github.com/moonlibs/connection-legacy

Это тоже дополнительные приседания, но на другой стул 🙂
источник

Д

Дмитрий in Tarantool
Да, спасибо. Посмотрим и это 👍🏻
источник

OT

Oleg Trofimenko in Tarantool
Добрый день всем. Подскажите, пожалуйста.
Есть внутри компании кластер kubernetes без какого либо внешнего доступа в сеть. Каким образом можно развернуть в нем tarantool?
источник

MS

Mike Siomkin in Tarantool
источник