[PATCH v4 0/2] memtx: add yields during index build
Serge Petrenko
sergepetrenko at tarantool.org
Thu May 30 15:13:26 MSK 2019
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 v4:
- move errinj introduction to the
second patch
- move more tests from vinyl/errinj_ddl
to engine/errinj_ddl
- unify errinjs in memtx and vinyl index
build for easier testing
- ref count cursor before yield in index
build
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 | 107 ++++++++++++
src/box/vinyl.c | 16 ++
src/lib/core/errinj.h | 1 +
test/box/errinj.result | 2 +
test/engine/ddl.result | 111 +++++++++++++
test/engine/ddl.test.lua | 72 ++++++++
test/engine/errinj_ddl.result | 284 ++++++++++++++++++++++++++++++++
test/engine/errinj_ddl.test.lua | 133 +++++++++++++++
test/engine/suite.ini | 2 +-
test/vinyl/ddl.result | 118 -------------
test/vinyl/ddl.test.lua | 70 --------
test/vinyl/errinj_ddl.result | 182 --------------------
test/vinyl/errinj_ddl.test.lua | 81 ---------
13 files changed, 727 insertions(+), 452 deletions(-)
create mode 100644 test/engine/errinj_ddl.result
create mode 100644 test/engine/errinj_ddl.test.lua
--
2.20.1 (Apple Git-117)
More information about the Tarantool-patches
mailing list