[Tarantool-patches] [PATCH 00/20] Rewrite performance critical parts of net.box in C

Vladislav Shpilevoy v.shpilevoy at tarantool.org
Thu Jul 29 01:51:18 MSK 2021


Hi! Thanks for the patchset!

Here is a first part of my review. I will return later to continue.

Commits 02-05, 07-08, 10 are LGTM.

> Asynchronous calls don't show as much of an improvement as synchronous,
> because per each asynchronous call we still have to create a 'future'
> object in Lua. Still, the improvement is quite noticeable - 30% for
> REPLACE, 10% for UPDATE, 20% for SELECT, 25% for CALL.

I didn't reach the end of the patchset yet, but did you try to create
the futures as cdata objects? They could be allocated on mempool, their
GC pressure might be optimized by doing similar to luaT_tuple_encode_table_ref
optimization (there was found a way to make __gc and other C functions
cheaper when it comes to amount of GC objects in Lua).

The API would stay the same, they just would become C structs with
methods instead of Lua tables.


More information about the Tarantool-patches mailing list