diff --git a/test/vinyl/deferred_delete.result b/test/vinyl/deferred_delete.result index 61f81ce2659753d910ff086858a25a55736f1e6a..0a380ed56e5d8f490dbe12860774e3eb10c12940 100644 --- a/test/vinyl/deferred_delete.result +++ b/test/vinyl/deferred_delete.result @@ -503,6 +503,14 @@ pk = s:create_index('pk', {run_count_per_level = 10}) sk = s:create_index('sk', {run_count_per_level = 10, parts = {2, 'unsigned'}, unique = false}) --- ... +-- Write a run big enough to prevent major compaction from kicking in +-- (run_count_per_level is ignored on the last level - see gh-3657). +dummy_rows = 100 +--- +... +for i = 1001, 1000 + dummy_rows do s:replace{i, i} end +--- +... for i = 1, 10 do s:replace{i, i} end --- ... @@ -525,19 +533,19 @@ for i = 2, 10, 2 do s:replace{i, i * 100} end box.commit() --- ... -sk:select() +sk:select({1000}, {iterator = 'le'}) --- -- - [2, 200] - - [4, 400] - - [6, 600] +- - [10, 1000] - [8, 800] - - [10, 1000] + - [6, 600] + - [4, 400] + - [2, 200] ... -pk:stat().rows -- 10 old REPLACEs + 5 DELETEs + 5 new REPLACEs +pk:stat().rows - dummy_rows -- 10 old REPLACEs + 5 DELETEs + 5 new REPLACEs --- - 20 ... -sk:stat().rows -- 10 old REPLACEs + 5 new REPLACEs +sk:stat().rows - dummy_rows -- 10 old REPLACEs + 5 new REPLACEs --- - 15 ... @@ -563,19 +571,19 @@ sk:compact() while sk:stat().disk.compaction.count == 0 do fiber.sleep(0.001) end --- ... -sk:select() +sk:select({1000}, {iterator = 'le'}) --- -- - [2, 200] - - [4, 400] - - [6, 600] +- - [10, 1000] - [8, 800] - - [10, 1000] + - [6, 600] + - [4, 400] + - [2, 200] ... -pk:stat().rows -- 5 new REPLACEs +pk:stat().rows - dummy_rows -- 5 new REPLACEs --- - 5 ... -sk:stat().rows -- ditto +sk:stat().rows - dummy_rows -- ditto --- - 5 ... diff --git a/test/vinyl/deferred_delete.test.lua b/test/vinyl/deferred_delete.test.lua index 93b5b35840e3a71351d69cc1547eb9f97ab62f02..240429fc2360e45b391a6c50c4cb645e662bed3f 100644 --- a/test/vinyl/deferred_delete.test.lua +++ b/test/vinyl/deferred_delete.test.lua @@ -184,6 +184,12 @@ s:drop() s = box.schema.space.create('test', {engine = 'vinyl'}) pk = s:create_index('pk', {run_count_per_level = 10}) sk = s:create_index('sk', {run_count_per_level = 10, parts = {2, 'unsigned'}, unique = false}) + +-- Write a run big enough to prevent major compaction from kicking in +-- (run_count_per_level is ignored on the last level - see gh-3657). +dummy_rows = 100 +for i = 1001, 1000 + dummy_rows do s:replace{i, i} end + for i = 1, 10 do s:replace{i, i} end box.snapshot() @@ -193,10 +199,10 @@ for i = 1, 10, 2 do s:delete{i} end for i = 2, 10, 2 do s:replace{i, i * 100} end box.commit() -sk:select() +sk:select({1000}, {iterator = 'le'}) -pk:stat().rows -- 10 old REPLACEs + 5 DELETEs + 5 new REPLACEs -sk:stat().rows -- 10 old REPLACEs + 5 new REPLACEs +pk:stat().rows - dummy_rows -- 10 old REPLACEs + 5 DELETEs + 5 new REPLACEs +sk:stat().rows - dummy_rows -- 10 old REPLACEs + 5 new REPLACEs -- Compact the primary index to generate deferred DELETEs. box.snapshot() @@ -208,10 +214,10 @@ box.snapshot() sk:compact() while sk:stat().disk.compaction.count == 0 do fiber.sleep(0.001) end -sk:select() +sk:select({1000}, {iterator = 'le'}) -pk:stat().rows -- 5 new REPLACEs -sk:stat().rows -- ditto +pk:stat().rows - dummy_rows -- 5 new REPLACEs +sk:stat().rows - dummy_rows -- ditto s:drop()