[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