From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: From: Serge Petrenko Subject: [PATCH v3 0/2] memtx: add yields during index build Date: Tue, 28 May 2019 18:33:23 +0300 Message-Id: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit To: vdavydov.dev@gmail.com Cc: tarantool-patches@freelists.org, kostja@tarantool.org, Serge Petrenko List-ID: https://github.com/tarantool/tarantool/issues/3976 https://github.com/tarantool/tarantool/tree/sp/gh-3976-background-index-build This patchset makes memtx engine yield during index build, which prevents it from stalling the event loop, and moves appropriate test cases from vinyl suite, where such a feature was implemented earlier, to engine suite. The first patch introduces changes in index build mechanism The second patch adds necessary tests Changes in v3: - split the patch into two, the second one moving appropriate tests from vinyl to engine suite - add a docbot request to the first patch - ensure index unique constraints are checked in on_replace triggers - fix tuple comparsion in on_replace triggers Changes in v2: - add an on_replace trigger to handle concurrent replaces while index build yields - modify test case slightly, test concurrent replaces. Serge Petrenko (2): memtx: add yields during index build test: move background index build test to engine suite from vinyl src/box/memtx_space.c | 102 +++++++++++++++++++ src/box/vinyl.c | 8 ++ src/lib/core/errinj.h | 1 + test/box/errinj.result | 2 + test/engine/ddl.result | 215 +++++++++++++++++++++++++++++++++++++++ test/engine/ddl.test.lua | 121 ++++++++++++++++++++++ test/vinyl/ddl.result | 118 --------------------- test/vinyl/ddl.test.lua | 70 ------------- 8 files changed, 449 insertions(+), 188 deletions(-) -- 2.20.1 (Apple Git-117)