From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: From: Vladimir Davydov Subject: [PATCH 0/4] Introduce VY_LOG_PREPARE_LSM vylog record Date: Tue, 27 Mar 2018 18:02:59 +0300 Message-Id: To: kostja@tarantool.org Cc: tarantool-patches@freelists.org List-ID: In order to implement ALTER for vinyl spaces, we need to log index creation before WAL write so that we can keep track of run files created during ALTER. This patch set introduces a new vylog record type, VY_LOG_PREPARE_LSM, for this purpose. Patch 1 of the series adds a new method to index vtab, abort_create, which is needed to mark prepared index as dropped in case ALTER fails. Patch 2 is trivial refactoring in vylog code, which simplifies further development. Patch 3 fixes a bug in vylog. Finally, patch 4 introduces the new record type. https://github.com/tarantool/tarantool/tree/vy-log-ddl-before-wal-write Vladimir Davydov (4): index: add abort_create virtual method vinyl: use rlist for iterating over objects recovered from vylog vinyl: fix discrepancy between vy_log.tx_size and actual tx len vinyl: log new index before WAL write on DDL src/box/alter.cc | 18 ++ src/box/index.cc | 5 + src/box/index.h | 12 ++ src/box/memtx_bitset.c | 1 + src/box/memtx_hash.c | 1 + src/box/memtx_rtree.c | 1 + src/box/memtx_tree.c | 1 + src/box/sysview_index.c | 1 + src/box/vinyl.c | 83 ++++++-- src/box/vy_log.c | 421 +++++++++++++++++++++++++++------------ src/box/vy_log.h | 40 +++- src/box/vy_lsm.c | 47 ++++- test/engine/truncate.result | 87 -------- test/engine/truncate.test.lua | 48 ----- test/vinyl/errinj_vylog.result | 161 ++++++++------- test/vinyl/errinj_vylog.test.lua | 111 +++++------ test/vinyl/layout.result | 4 +- 17 files changed, 612 insertions(+), 430 deletions(-) -- 2.11.0