Skip to content

test: add improved test for SELECT consistency#7352

Merged
locker merged 1 commit intotarantool:masterfrom
locker:vy-select-consistency-test
Jul 5, 2022
Merged

test: add improved test for SELECT consistency#7352
locker merged 1 commit intotarantool:masterfrom
locker:vy-select-consistency-test

Conversation

@locker
Copy link
Member

@locker locker commented Jul 4, 2022

The idea behind the new test is the same as the one used by vinyl/select_consistency.test.lua: create a space with a few
compound secondary indexes that share the first part, then run SELECT requests under heavy write load and check that results match. However, in comparison to its predecessor, the new test has a few improvements:

  1. It generates DML requests in multi-statement transactions.
  2. It checks non-unique indexes.
  3. It checks multikey indexes.
  4. It triggers L0 dumps not by box.snapshot, but by exceeding the box.cfg.vinyl_memory limit.
  5. It starts 20 write and 5 read fibers.
  6. It reruns the test after restart to check that recovery works fine.
  7. It checks that there's no phantom statements stored in the space indexes after the test.
  8. It runs the test with deferred DELETEs enabled and disabled (see box.cfg.vinyl_defer_deletes).
  9. It is written in luatest.

The test takes about 20 seconds to finish so it's marked as long run.

Closes #4251

The idea behind the new test is the same as the one used by
vinyl/select_consistency.test.lua: create a space with a few
compound secondary indexes that share the first part, then run
SELECT requests under heavy write load and check that results
match. However, in comparison to its predecessor, the new test
has a few improvements:

 1. It generates DML requests in multi-statement transactions.
 2. It checks non-unique indexes.
 3. It checks multikey indexes.
 4. It triggers L0 dumps not by box.snapshot, but by exceeding
    the box.cfg.vinyl_memory limit.
 5. It starts 20 write and 5 read fibers.
 6. It reruns the test after restart to check that recovery works fine.
 7. It checks that there's no phantom statements stored in
    the space indexes after the test.
 8. It runs the test with deferred DELETEs enabled and disabled.
    (see box.cfg.vinyl_defer_deletes).
 9. It is written in luatest.

The test takes about 20 seconds to finish so it's marked as long run.

Closes tarantool#4251

NO_DOC=test
NO_CHANGELOG=test
@locker locker force-pushed the vy-select-consistency-test branch from c10c6b6 to a7aefb7 Compare July 4, 2022 14:22
@locker locker requested a review from alyapunov July 4, 2022 14:31
@alyapunov alyapunov assigned locker and unassigned alyapunov Jul 5, 2022
@locker locker added the full-ci Enables all tests for a pull request label Jul 5, 2022
@coveralls
Copy link

Coverage Status

Coverage increased (+0.03%) to 84.913% when pulling a7aefb7 on locker:vy-select-consistency-test into 5557c47 on tarantool:master.

@locker locker merged commit 4e9a94a into tarantool:master Jul 5, 2022
@locker locker deleted the vy-select-consistency-test branch July 5, 2022 13:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

full-ci Enables all tests for a pull request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Improve test checking secondary index consistency

3 participants