30 мая 2019 г., в 16:38, Vladimir Davydov <vdavydov.dev@gmail.com> написал(а):

On Thu, May 30, 2019 at 03:13:26PM +0300, Serge Petrenko wrote:
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

Pushed to master. Thanks for addressing all my comments.

We should probably make format check yielding, too. This should be
very similar to what you've just done. Please consider doing this in
a follow-up patch.

Ok, will do. Thank you