Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

The openresty mysql driver is in pure lua. It has a very efficient socket/pooling mechanism, using sockets from nginx.


It would be even more (much more?) effective to use preconfigured https://github.com/chaoslawful/drizzle-nginx-module location and 'ngx.location.capture' I suppose

And http://leafo.net/lapis/ is missing again.


I benchmarked the pure postgresql lua driver to be ˜3 times as fast as the nginx-postgresql-c driver. When you use the nginx drivers from a lua context you have to use an internal nginx request to that location, so there's some overhead.

If you want to improve even further on the lua drivers, LuaJIT FFI is probably the right answer.


>˜3 times as fast as the nginx-postgresql-c driver

That's interesting..

>LuaJIT FFI is probably the right answer

Do you mean calling nginx internal functions (DB driver or location capture, like ngx_eval module does in that case) via FFI (I doubt if that is safe in any way) or just use libpq from LuaJIT directly?


I haven't benchmarked the mysql drivers, so results might be different there.

There's some work being done by openresty author w.r.t. ffi for openresty itself, it might yield interesting results. And yes, I think both the option you listed are viable. But the lua drivers already perform very well.


I asked leafo about adding Lapis and he sounded interested. Since then I haven't harassed him. I figure he will get to it when he can.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: