Tarantool development patches archive
 help / color / mirror / Atom feed
From: Vladimir Davydov <vdavydov.dev@gmail.com>
To: kostja@tarantool.org
Cc: tarantool-patches@freelists.org
Subject: [PATCH 00/12] vinyl: allow to extend key def of non-empty index
Date: Sun,  1 Apr 2018 12:05:27 +0300	[thread overview]
Message-ID: <cover.1522572160.git.vdavydov.dev@gmail.com> (raw)

The goal of this patch set is to allow altering non-empty vinyl
indexes in case the new key definition is fully compatible with the
old one (i.e. has the same key parts, but more generic field types).
This is an important step toward closing #1653 [1].

The code is available at GitHub, see [2]. Note this patch set is based
on top of the patch that removes vinyl upsert_format, see [3, 4].

[1] https://github.com/tarantool/tarantool/issues/1653
[2] https://github.com/tarantool/tarantool/commits/vy-allow-to-extend-key-def
[3] https://github.com/tarantool/tarantool/commits/vy-zap-upsert-format
[4] https://www.freelists.org/post/tarantool-patches/PATCH-02-vinyl-zap-upsert-format

Vladimir Davydov (12):
  index: add commit_modify virtual method
  alter: require rebuild of all secondary vinyl indexes if pk changes
  alter: do not rebuild secondary indexes on compatible pk changes
  space: make space_swap_index method virtual
  vinyl: do not reallocate tuple formats on alter
  vinyl: zap vy_lsm_validate_formats
  vinyl: zap vy_mem_update_formats
  vinyl: remove pointless is_nullable initialization for disk_format
  vinyl: use source tuple format when copying field map
  vinyl: rename vy_log_record::commit_lsn to create_lsn
  vinyl: do not write VY_LOG_DUMP_LSM record to snapshot
  vinyl: allow to modify key definition if it does not require rebuild

 src/box/alter.cc                  |  28 +++++---
 src/box/index.cc                  |  10 +++
 src/box/index.h                   |  28 ++++++++
 src/box/key_def.cc                |   9 +++
 src/box/key_def.h                 |   7 ++
 src/box/memtx_bitset.c            |   2 +
 src/box/memtx_hash.c              |   2 +
 src/box/memtx_rtree.c             |   2 +
 src/box/memtx_space.c             |   1 +
 src/box/memtx_tree.c              |  10 +++
 src/box/space.c                   |   9 ++-
 src/box/space.h                   |  33 ++++++---
 src/box/sysview_engine.c          |   1 +
 src/box/sysview_index.c           |   2 +
 src/box/tuple_format.c            |  18 -----
 src/box/tuple_format.h            |   8 ---
 src/box/vinyl.c                   | 144 ++++++++++++++++++++++----------------
 src/box/vy_log.c                  | 124 ++++++++++++++++++++++++--------
 src/box/vy_log.h                  |  36 ++++++++--
 src/box/vy_lsm.c                  |  49 +++----------
 src/box/vy_lsm.h                  |  17 ++---
 src/box/vy_mem.c                  |  15 +---
 src/box/vy_point_lookup.c         |   3 +-
 src/box/vy_stmt.c                 |  18 ++---
 src/box/vy_stmt.h                 |   6 +-
 src/box/vy_upsert.c               |   4 +-
 test/engine/ddl.result            | 113 +++++++++++++++++++++++++++++-
 test/engine/ddl.test.lua          |  35 ++++++++-
 test/engine/replica_join.result   |  26 ++++++-
 test/engine/replica_join.test.lua |   2 +
 test/engine/truncate.result       |   2 +-
 test/engine/truncate.test.lua     |   2 +-
 test/vinyl/ddl.result             |  78 ++++++---------------
 test/vinyl/ddl.test.lua           |  30 ++------
 test/vinyl/gh.result              |   2 +-
 test/vinyl/layout.result          |  75 +++++++++-----------
 test/vinyl/layout.test.lua        |   4 +-
 37 files changed, 595 insertions(+), 360 deletions(-)

-- 
2.11.0

             reply	other threads:[~2018-04-01  9:05 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-04-01  9:05 Vladimir Davydov [this message]
2018-04-01  9:05 ` [PATCH 01/12] index: add commit_modify virtual method Vladimir Davydov
2018-04-01  9:05 ` [PATCH 02/12] alter: require rebuild of all secondary vinyl indexes if pk changes Vladimir Davydov
2018-04-01  9:05 ` [PATCH 03/12] alter: do not rebuild secondary indexes on compatible " Vladimir Davydov
2018-04-05 12:30   ` Konstantin Osipov
2018-04-01  9:05 ` [PATCH 04/12] space: make space_swap_index method virtual Vladimir Davydov
2018-04-01  9:05 ` [PATCH 05/12] vinyl: do not reallocate tuple formats on alter Vladimir Davydov
2018-04-01 11:12   ` [tarantool-patches] " v.shpilevoy
2018-04-01 11:24     ` Vladimir Davydov
2018-04-01  9:05 ` [PATCH 06/12] vinyl: zap vy_lsm_validate_formats Vladimir Davydov
2018-04-01  9:05 ` [PATCH 07/12] vinyl: zap vy_mem_update_formats Vladimir Davydov
2018-04-01  9:05 ` [PATCH 08/12] vinyl: remove pointless is_nullable initialization for disk_format Vladimir Davydov
2018-04-01  9:05 ` [PATCH 09/12] vinyl: use source tuple format when copying field map Vladimir Davydov
2018-04-01  9:05 ` [PATCH 10/12] vinyl: rename vy_log_record::commit_lsn to create_lsn Vladimir Davydov
2018-04-01  9:05 ` [PATCH 11/12] vinyl: do not write VY_LOG_DUMP_LSM record to snapshot Vladimir Davydov
2018-04-01  9:05 ` [PATCH 12/12] vinyl: allow to modify key definition if it does not require rebuild Vladimir Davydov
2018-04-02  8:46   ` Vladimir Davydov
2018-04-05 14:32     ` Konstantin Osipov
2018-04-05 14:45     ` Konstantin Osipov
2018-04-05 14:48       ` Konstantin Osipov

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.1522572160.git.vdavydov.dev@gmail.com \
    --to=vdavydov.dev@gmail.com \
    --cc=kostja@tarantool.org \
    --cc=tarantool-patches@freelists.org \
    --subject='Re: [PATCH 00/12] vinyl: allow to extend key def of non-empty index' \
    /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