Tarantool development patches archive
 help / color / mirror / Atom feed
* [Tarantool-patches] [PATCH v2 0/3] fiber: keep reference to userdata if fiber created once
@ 2021-09-02 18:13 Oleg Babin via Tarantool-patches
  2021-09-02 18:13 ` [Tarantool-patches] [PATCH v2 1/3] fiber: rename ref to storage_ref Oleg Babin via Tarantool-patches
                   ` (2 more replies)
  0 siblings, 3 replies; 8+ messages in thread
From: Oleg Babin via Tarantool-patches @ 2021-09-02 18:13 UTC (permalink / raw)
  To: v.shpilevoy, imun; +Cc: tarantool-patches

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

Changes in v2:
  - Review fixes by Vlad and Igor
  - The patch patch that introduced mempool usage is discarded

Oleg Babin (3):
  fiber: rename ref to storage_ref
  fiber: pass struct fiber into lbox_pushfiber instead of id
  fiber: keep reference to userdata if fiber created once

 src/lib/core/fiber.c |   5 ++
 src/lib/core/fiber.h |   7 ++-
 src/lua/fiber.c      | 124 ++++++++++++++-----------------------------
 3 files changed, 51 insertions(+), 85 deletions(-)

-- 
2.32.0


^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2021-09-05 15:07 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-09-02 18:13 [Tarantool-patches] [PATCH v2 0/3] fiber: keep reference to userdata if fiber created once Oleg Babin via Tarantool-patches
2021-09-02 18:13 ` [Tarantool-patches] [PATCH v2 1/3] fiber: rename ref to storage_ref Oleg Babin via Tarantool-patches
2021-09-02 18:13 ` [Tarantool-patches] [PATCH v2 2/3] fiber: pass struct fiber into lbox_pushfiber instead of id Oleg Babin via Tarantool-patches
2021-09-02 18:13 ` [Tarantool-patches] [PATCH v2 3/3] fiber: keep reference to userdata if fiber created once Oleg Babin via Tarantool-patches
2021-09-02 19:47   ` Oleg Babin via Tarantool-patches
2021-09-03 12:23   ` Igor Munkin via Tarantool-patches
2021-09-03 20:48     ` Oleg Babin via Tarantool-patches
2021-09-05 15:07     ` Vladislav Shpilevoy via Tarantool-patches

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox