[Tarantool-patches] [PATCH] Move txn from shema to a separate module (use C API instead of FFI)

Igor Munkin imun at tarantool.org
Thu Nov 28 16:00:05 MSK 2019


Kostja,

On 28.11.19, Konstantin Osipov wrote:
> * Leonid Vasiliev <lvasiliev at tarantool.org> [19/11/28 11:10]:
> > 4) About converts others txn functions from FFI to C-API:
> > I think it's a good practice, use one or the other (FFI or C-API) in module
> 
> My complaint is about this part. Jit trace can go through FFI but
> can't go through Lua/C. This is why many of these functions were
> in FFI in the first place. 
> 
> We could make a conscious choice to make all box API Lua/C - but
> this will literally kill JIT, so then why not just move to

LuaJIT v2.1 provides trace stitching feature (for more info see
here[1]), so strictly saying, it doesn't kill JIT but yes, performance
is nerfed comparing to traces recorded for an FFI code. I have no
proofs/benchmarks for now, so it sounds kinda bullshit, but I look
forward to make some in the nearest future.

Furthermore, FFI is not a silver bullet considering this issue[2].

> plain Lua 5.3 and forget about grievances with LuaJIT altogether.

JIT is not the only killing feature provided by LuaJIT and
infrastructure for Lua 5.1 is much richer.

> 
> Nick Zavaritsky had a patch that would detect sandwich stacks in
> runtime and assert. Nobody had time to look at it back then -

Could you please provide the issue/link for this changeset, I'll take a
look on it with pleasure.

> everyone was busy with vinyl and sql.
> 
> Why not dig it up to protect from future erosion of the code base? 
> 
> This would be more valuable contribution than just falling back to
> Lua/C for everything.

I have a tiny patch for JIT in my branch[3], respecting most remarks
given by Mr Egorov, however it's not yet fully tested and there're
still some pitfalls not being fixed. I'm working on it for now.

> 
> -- 
> Konstantin Osipov, Moscow, Russia

[1]: http://wiki.luajit.org/NYI
[2]: https://github.com/tarantool/tarantool/issues/4630
[3]: https://github.com/tarantool/luajit/commit/a3a47015842c7e7c1bee2f4fc30345aa7d4e5dba

-- 
Best regards,
IM


More information about the Tarantool-patches mailing list