Tarantool development patches archive
 help / color / mirror / Atom feed
From: Kirill Yukhin <kyukhin@tarantool.org>
To: vdavydov.dev@gmail.com
Cc: tarantool-patches@freelists.org, Kirill Yukhin <kyukhin@tarantool.org>
Subject: [PATCH v2 0/4] Reuse tuple formats for ephemeral spaces
Date: Thu, 24 Jan 2019 15:48:44 +0300	[thread overview]
Message-ID: <cover.1548333874.git.kyukhin@tarantool.org> (raw)

This patchset makes it possible to re-use tuple_format around
multiple ephemeral spaces. This is needed when many SQL requests
are served at the same time. In this case for almost each non-trivial
SELECT request ephemeral space is created with its own format.
Since removal of ephemeral spaces doesn't mean removal of format,
and formats count is limited, it is pretty much simple to run out of
formats.
This occurs on TPC-C benchmark, when number of clients > 32.

Issue https://github.com/tarantool/tarantool/issues/3924
Branch https://github.com/tarantool/tarantool/commits/kyukhin/gh-3924-reuse-eph-formats

Kirill Yukhin (4):
  Pass necessary fields to tuple_format contructor
  Set is_temporary flag for formats of ephemeral spaces
  sql: set error type in case of ephemral space creation failure
  Allow to reuse tuple_formats for ephemeral spaces

ChangeLog:
  - Fixed all nits pointed
  - Hashing of formats refactored: extracted into dedicated
    routine()
  - Moved initialization of hasher to tuple_init()
  - Removed dead code from test.

 src/box/blackhole.c             |   7 +-
 src/box/box.cc                  |   1 +
 src/box/memtx_engine.c          |   6 ++
 src/box/memtx_space.c           |   9 +-
 src/box/space.c                 |   3 +-
 src/box/space_def.c             |  16 +++
 src/box/space_def.h             |  14 +++
 src/box/sql.c                   |   6 +-
 src/box/sql/vdbe.c              |   4 +-
 src/box/tuple.c                 |  13 ++-
 src/box/tuple_format.c          | 184 +++++++++++++++++++++++++++++---
 src/box/tuple_format.h          |  31 +++++-
 src/box/vinyl.c                 |  12 ++-
 src/box/vy_lsm.c                |  10 +-
 src/errinj.h                    |   2 +
 test/box/errinj.result          |   8 +-
 test/sql/errinj.result          |  36 +++++++
 test/sql/errinj.test.lua        |  13 +++
 test/unit/tuple_bigref.c        |   1 +
 test/unit/vy_iterators_helper.c |  14 +--
 test/unit/vy_mem.c              |   5 +-
 test/unit/vy_point_lookup.c     |   5 +-
 22 files changed, 342 insertions(+), 58 deletions(-)

-- 
2.19.1

             reply	other threads:[~2019-01-24 12:48 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-01-24 12:48 Kirill Yukhin [this message]
2019-01-24 12:48 ` [PATCH v2 1/4] Pass necessary fields to tuple_format contructor Kirill Yukhin
2019-01-24 17:26   ` Vladimir Davydov
2019-01-24 12:48 ` [PATCH v2 2/4] Set is_temporary flag for formats of ephemeral spaces Kirill Yukhin
2019-01-24 17:26   ` Vladimir Davydov
2019-01-24 12:48 ` [PATCH v2 3/4] sql: set error type in case of ephemral space creation failure Kirill Yukhin
2019-01-24 17:26   ` Vladimir Davydov
2019-01-24 12:48 ` [PATCH v2 4/4] Allow to reuse tuple_formats for ephemeral spaces Kirill Yukhin
2019-01-24 17:49   ` Vladimir Davydov
2019-01-25  6:05     ` Kirill Yukhin
2019-01-25  9:01       ` Vladimir Davydov

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.1548333874.git.kyukhin@tarantool.org \
    --to=kyukhin@tarantool.org \
    --cc=tarantool-patches@freelists.org \
    --cc=vdavydov.dev@gmail.com \
    --subject='Re: [PATCH v2 0/4] Reuse tuple formats for ephemeral spaces' \
    /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