• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

tarantool / tarantool / 12429 / 3
83%
master: 88%

Build:
Build:
LAST BUILD BRANCH: i12156-x1
DEFAULT BRANCH: master
Ran 07 Jun 2018 06:14PM UTC
Files 301
Run time 46s
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

07 Jun 2018 01:55PM UTC coverage: 81.886% (+0.06%) from 81.827%
TARGET=coverage

push

travis-ci

kostja
vinyl: allow to build secondary index for non-empty space

This patch implements space_vtab::build_index callback for vinyl spaces.
Now instead of returning an error in case the space is not empty, the
callback will actually try to build a new index. The build procedure
consists of four steps:

 1. Prepare the LSM tree for building. This implies writing a special
    record to vylog, VY_LOG_PREPARE_LSM, and adding the new index to
    the vinyl scheduler so that it can be dumped during build. We need
    to log the new LSM tree so that we can keep track of run files
    created for it during build and remove them if build procedure
    fails.

 2. Inserting tuples stored in the space into the new LSM tree. Since
    there may concurrent DML requests, we install a trigger to forward
    them to the new index.

 3. Dumping the index to disk so that we don't have to rebuild it after
    recovery.

 4. Committing the new LSM tree in vylog (VY_LOG_CREATE_LSM).

Steps 1-3 are done from the space_vtab::build_index callback while
step 4 is done after WAL write, from index_vtab::commit_create.

While step 3 is being performed, new DML requests may be executed for
the altered space. Those requests will be reflected in the new index
thanks to the on_replace trigger, however they won't be recovered during
WAL recovery as they will appear in WAL before the ALTER record that
created the index. To recover them, we replay all statements stored in
the primary key's memory level when replaying the ALTER record during
WAL recovery.

Closes #1653

39452 of 48179 relevant lines covered (81.89%)

893285.94 hits per line

Source Files on job 12429.3 (TARGET=coverage)
  • Tree
  • List 0
  • Changed 272
  • Source Changed 4
  • Coverage Changed 272
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Build 11322
  • Travis Job 12429.3
  • 687f303e on github
  • Prev Job for TARGET=coverage on 1.10 (#12428.3)
  • Next Job for TARGET=coverage on 1.10 (#12456.3)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc