From: Oleg Babin via Tarantool-patches <tarantool-patches@dev.tarantool.org>
To: v.shpilevoy@tarantool.org, imun@tarantool.org
Cc: tarantool-patches@dev.tarantool.org
Subject: [Tarantool-patches] [PATCH 0/4] fiber: keep reference to userdata if fiber created once
Date: Wed, 11 Aug 2021 23:33:27 +0300 [thread overview]
Message-ID: <cover.1628713520.git.babinoleg@mail.ru> (raw)
From: Oleg Babin <babinoleg@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
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
next reply other threads:[~2021-08-11 20:33 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-08-11 20:33 Oleg Babin via Tarantool-patches [this message]
2021-08-11 20:33 ` [Tarantool-patches] [PATCH 1/4] fiber: rename ref to fiber_ref Oleg Babin via Tarantool-patches
2021-09-02 15:22 ` Igor Munkin via Tarantool-patches
2021-09-02 18:00 ` Бабин Олег via Tarantool-patches
2021-08-11 20:33 ` [Tarantool-patches] [PATCH 2/4] fiber: pass struct fiber into lbox_pushfiber instead of id Oleg Babin via Tarantool-patches
2021-09-02 15:22 ` Igor Munkin via Tarantool-patches
2021-08-11 20:33 ` [Tarantool-patches] [PATCH 3/4] fiber: keep reference to userdata if fiber created once Oleg Babin via Tarantool-patches
2021-08-25 20:33 ` Vladislav Shpilevoy via Tarantool-patches
2021-08-26 6:14 ` Oleg Babin via Tarantool-patches
2021-09-02 15:22 ` Igor Munkin via Tarantool-patches
2021-09-02 17:59 ` Бабин Олег via Tarantool-patches
2021-09-02 21:39 ` Vladislav Shpilevoy via Tarantool-patches
2021-09-03 6:12 ` Oleg Babin via Tarantool-patches
2021-08-11 20:33 ` [Tarantool-patches] [PATCH 4/4] fiber: allocate on_stop triggers using mempool Oleg Babin via Tarantool-patches
2021-08-25 20:34 ` Vladislav Shpilevoy via Tarantool-patches
2021-08-26 6:14 ` Oleg Babin via Tarantool-patches
2021-08-26 20:01 ` Vladislav Shpilevoy via Tarantool-patches
2021-08-26 20:15 ` Oleg Babin via Tarantool-patches
2021-09-02 15:23 ` [Tarantool-patches] [PATCH 0/4] fiber: keep reference to userdata if fiber created once Igor Munkin via Tarantool-patches
2021-09-02 18:07 ` Бабин Олег via Tarantool-patches
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=cover.1628713520.git.babinoleg@mail.ru \
--to=tarantool-patches@dev.tarantool.org \
--cc=imun@tarantool.org \
--cc=olegrok@tarantool.org \
--cc=v.shpilevoy@tarantool.org \
--subject='Re: [Tarantool-patches] [PATCH 0/4] fiber: keep reference to userdata if fiber created once' \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox