diff --git a/regression-test/data/compaction/test_compaction_with_visible_version.out b/regression-test/data/compaction/test_compaction_with_visible_version.out index 54739ddf6657d52..de90dd5fa2a3a7e 100644 --- a/regression-test/data/compaction/test_compaction_with_visible_version.out +++ b/regression-test/data/compaction/test_compaction_with_visible_version.out @@ -176,6 +176,174 @@ 39 390 40 400 41 410 + +-- !select_6 -- +0 0 +1 10 +2 20 +3 30 +4 40 +5 50 +6 60 +7 70 +8 80 +9 90 +10 100 +11 110 +12 120 +13 130 +14 140 +15 150 +16 160 +17 170 +18 180 +19 190 +20 200 +21 210 +22 220 +23 230 +24 240 +25 250 +26 260 +27 270 +28 280 +29 290 +30 300 +31 310 +32 320 +33 330 +34 340 +35 350 +36 360 +37 370 +38 380 +39 390 +40 400 +41 410 +42 420 +43 430 +44 440 +45 450 +46 460 +47 470 +48 480 +49 490 +50 500 +51 510 +52 520 +53 530 +54 540 +55 550 +56 560 +57 570 +58 580 +59 590 +60 600 +61 610 +62 620 +63 630 +64 640 +65 650 +66 660 +67 670 +68 680 +69 690 +70 700 +71 710 +72 720 +73 730 +74 740 +75 750 +76 760 +77 770 +78 780 +79 790 +80 800 +81 810 +82 820 +83 830 +84 840 +85 850 +86 860 +87 870 +88 880 +89 890 +90 900 +91 910 +92 920 +93 930 +94 940 +95 950 +96 960 +97 970 +98 980 +99 990 +100 1000 +101 1010 +102 1020 +103 1030 +104 1040 +105 1050 +106 1060 +107 1070 +108 1080 +109 1090 +110 1100 +111 1110 +112 1120 +113 1130 +114 1140 +115 1150 +116 1160 +117 1170 +118 1180 +119 1190 +120 1200 +121 1210 + +-- !select_7 -- +0 0 +1 10 +2 20 +3 30 +4 40 +5 50 +6 60 +7 70 +8 80 +9 90 +10 100 +11 110 +12 120 +13 130 +14 140 +15 150 +16 160 +17 170 +18 180 +19 190 +20 200 +21 210 +22 220 +23 230 +24 240 +25 250 +26 260 +27 270 +28 280 +29 290 +30 300 +31 310 +32 320 +33 330 +34 340 +35 350 +36 360 +37 370 +38 380 +39 390 +40 400 +41 410 42 420 43 430 44 440 @@ -256,4 +424,25 @@ 119 1190 120 1200 121 1210 +122 1220 +123 1230 +124 1240 +125 1250 +126 1260 +127 1270 +128 1280 +129 1290 +130 1300 +131 1310 +132 1320 +133 1330 +134 1340 +135 1350 +136 1360 +137 1370 +138 1380 +139 1390 +140 1400 +141 1410 +142 1420 diff --git a/regression-test/suites/compaction/test_compaction_with_visible_version.groovy b/regression-test/suites/compaction/test_compaction_with_visible_version.groovy index 2995b32187e6bdc..882bc70a3adb6e5 100644 --- a/regression-test/suites/compaction/test_compaction_with_visible_version.groovy +++ b/regression-test/suites/compaction/test_compaction_with_visible_version.groovy @@ -100,9 +100,12 @@ suite('test_compaction_with_visible_version') { // wait be report version count Thread.sleep(3 * 1000) def tablets = sql_return_maparray "SHOW TABLETS FROM ${tableName}" + def lastInvisibleVersionCountMap = [:] def lastVisibleVersionCountMap = [:] tablets.each { lastVisibleVersionCountMap[it.BackendId] = it.VisibleVersionCount as long + lastInvisibleVersionCountMap[it.BackendId] = + (it.TotalVersionCount as long) - (it.VisibleVersionCount as long) triggerCompaction it, isCumuCompactSucc, 'cumulative' } @@ -149,13 +152,13 @@ suite('test_compaction_with_visible_version') { } def lastVisibleVersionCount = lastVisibleVersionCountMap.get(backendId) + def lastInvisibleVersionCount = lastInvisibleVersionCountMap.get(backendId) if (isCumuCompactSucc) { + assertTrue(lastInvisibleVersionCount > invisibleVersionCount || lastInvisibleVersionCount <= 1, + "not met with: lastInvisibleVersionCount ${lastInvisibleVersionCount} > " + + "invisibleVersionCount ${invisibleVersionCount}") if (runBaseCompact) { assertEquals(1L, visibleVersionCount) - } else { - assertTrue(lastVisibleVersionCount > visibleVersionCount || lastVisibleVersionCount == 1, - "not met with: lastVisibleVersionCount ${lastVisibleVersionCount} > " - + "visibleVersionCount ${visibleVersionCount}") } } else { assertEquals(lastVisibleVersionCount, visibleVersionCount) @@ -166,7 +169,7 @@ suite('test_compaction_with_visible_version') { sql " CREATE TABLE ${tableName} (k1 int, k2 int) DISTRIBUTED BY HASH(k1) BUCKETS 1 " // normal - def rowNum = 0 + def rowNum = 0L def insertNRecords = { num -> // if enable debug point DatabaseTransactionMgr.stop_finish_transaction, // insert will need to wait insert_visible_timeout_ms. @@ -241,12 +244,16 @@ suite('test_compaction_with_visible_version') { qt_select_6 "SELECT * FROM ${tableName} ORDER BY k1" cluster.injectDebugPoints(NodeType.FE, ['DatabaseTransactionMgr.stop_finish_transaction':null]) - update_all_be_config('compaction_keep_invisible_version_timeout_sec', 1) - update_all_be_config('compaction_keep_invisible_version_min_count', 0) + def compaction_keep_invisible_version_timeout_sec = 1 + compaction_keep_invisible_version_min_count = 0L + update_all_be_config('compaction_keep_invisible_version_timeout_sec', compaction_keep_invisible_version_timeout_sec) + update_all_be_config('compaction_keep_invisible_version_min_count', compaction_keep_invisible_version_min_count) lastRowNum = rowNum insertNRecords(21) + Thread.sleep((compaction_keep_invisible_version_timeout_sec + 1) * 1000) + // after compaction_keep_invisible_version_timeout_sec, // all version had been compact (compaction_keep_invisible_version_min_count=0), checkCompact(true, false, true, rowNum + 1, lastRowNum + 1) @@ -260,5 +267,9 @@ suite('test_compaction_with_visible_version') { // max_version 123, tablet_id 10062') exception 'missed_versions is empty' } + + cluster.clearFrontendDebugPoints() + Thread.sleep(5000) + qt_select_7 "SELECT * FROM ${tableName} ORDER BY k1" } }