[Tarantool-patches] [PATCH 0/4] fiber: keep reference to userdata if fiber created once

Igor Munkin imun at tarantool.org
Thu Sep 2 18:23:06 MSK 2021


Oleg,

Thanks for the series!

On 11.08.21, olegrok at tarantool.org wrote:
> From: Oleg Babin <babinoleg at mail.ru>
> 
> This patch reworks approach to fiber management in Lua. Before
> this patch each action that should return fiber led to new
> userdata creation that was quite slow and made GC suffer. This
> patch introduces new field in struct fiber to store a reference to
> userdata that was created once for a fiber. It allows speedup
> operations as fiber.self() and fiber.id().
> Simple benchmark shows that access to fiber storage is faster in
> two times, fiber.find() - 2-3 times and fiber.new/create functions
> don't have any changes.
> 
> Initially changes were inspired by #6210 [1] but current patchset
> doesn't introduce anything new just improves performance of
> existing functions.
> Some results are available also in related github PR [2].
> 
>   [1] https://github.com/tarantool/tarantool/issues/6210
>   [2] https://github.com/tarantool/tarantool/pull/6280  

Does this PR supersedes another one[1] from you? If it does, please
close #6215 then.

> 
> Oleg Babin (4):
>   fiber: rename ref to fiber_ref
>   fiber: pass struct fiber into lbox_pushfiber instead of id
>   fiber: keep reference to userdata if fiber created once
>   fiber: allocate on_stop triggers using mempool
> 
>  src/lib/core/fiber.h |   7 ++-
>  src/lua/fiber.c      | 134 ++++++++++++++++++-------------------------
>  2 files changed, 62 insertions(+), 79 deletions(-)
> 
> -- 
> 2.32.0
> 

[1]: https://github.com/tarantool/tarantool/pull/6215

-- 
Best regards,
IM


More information about the Tarantool-patches mailing list