IPONWEB corporate blog
System Programming
C
Lua
Comments 10
0
В презентации с HighLoad++ у вас описан проект с 6M RPS. Не скажете на какой аппаратной конфигурации и с каким протокольным стэком работает?

Eщё один вопрос, можно ли использовать как drop-in-replacement для Lua/LuaJIT (в плане C API)?
+2
Виртуальные машины в GCE и AWS, на каждой запущен многопоточный HTTP-сервер приложений (написан на C++) со встроенной LuaVela, исполняющей логику на Lua. Виртуальные машины с серверами приложений сидят за балансировщиками.

Да, в плане C API можно использовать как drop-in-replacement для Lua/LuaJIT: и набор, и семантика API сохранены.
0
Вернулся, что-бы сам ответить на свой последний вопрос. Но вы уже ответили.

Да, в плане C API можно использовать как drop-in-replacement для Lua/LuaJIT: и набор, и семантика API сохранены.

EDIT: один момент, есть: в инклудах нужен префикс ujit/ для всех заголовочников lua

Однако, я к сожалению получил segmentation fault на вот таком стэке вызовов (нормально работает с LuaJIT 2.0.5):

#0 0x00005555555e2ea2 in wssend ()
#1 0x00007ffff7e24113 in lj_BC_FUNCC () from /usr/local/lib64/libujit.so.0
#2 0x00007ffff7e50b6e in lua_pcall () from /usr/local/lib64/libujit.so.0

Но это не сюда, это в bug-tracker, попробуем разобраться вместе, т.к. проект ваш очень интерестен. После ухода Майка от проекта LuaJIT, у многих пессимизм был по поводу дальнейшего развития, и вполне оправданный.

0
EDIT: один момент, есть: в инклудах нужен префикс ujit/ для всех заголовочников lua


Да, это так. Может, не самое удачное решение, но мы его выбрали для комфортной одновременной установки в систему нескольких реализаций.
0
Не рассматривали вариант перехода на luajit 2.1, либо развивать форк с него?
0
Эксперименты с LuaJIT 2.1 проводили перед тем, как форкнули, то есть примерно в 2015 году. В тот момент 2.1 показал плохую производительность на наших проектах и нагрузках, да и в целом его официальный статус беты внушал опасения. Соответственно, форк начали от стабильной ветки 2.0.

Но за 2.1 следим и заимствуем некоторые вещи оттуда (например, поддержку конкатенации в JIT-компиляторе).
0
Работает в том виде, как он есть в 2.0, включая релевантные патчи, появившиеся после релиза 2.0.5 (https://github.com/iponweb/luavela/commit/ca0b3e2bcad72ceb71455fbff4d17f772308fd94).
Only those users with full accounts are able to leave comments., please.