You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by zh...@apache.org on 2022/10/24 04:56:36 UTC

[shardingsphere] branch master updated: Improve migration IT, remove comment (#21712)

This is an automated email from the ASF dual-hosted git repository.

zhonghongsheng pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git


The following commit(s) were added to refs/heads/master by this push:
     new 9788c1bc0f3 Improve migration IT, remove comment (#21712)
9788c1bc0f3 is described below

commit 9788c1bc0f3386a98c964ddd0fba31844e020531
Author: Xinze Guo <10...@users.noreply.github.com>
AuthorDate: Mon Oct 24 12:56:28 2022 +0800

    Improve migration IT, remove comment (#21712)
    
    * Improve check migration after stop
    
    * Fix codestyle
---
 .../integration/data/pipeline/cases/base/BaseITCase.java | 16 ++++++++++++++++
 .../cases/migration/general/MySQLMigrationGeneralIT.java |  1 -
 .../migration/general/PostgreSQLMigrationGeneralIT.java  | 16 +++++-----------
 .../migration/primarykey/TextPrimaryKeyMigrationIT.java  |  1 -
 4 files changed, 21 insertions(+), 13 deletions(-)

diff --git a/test/integration-test/scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/cases/base/BaseITCase.java b/test/integration-test/scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/cases/base/BaseITCase.java
index 777984e4c06..dd5c14db202 100644
--- a/test/integration-test/scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/cases/base/BaseITCase.java
+++ b/test/integration-test/scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/cases/base/BaseITCase.java
@@ -300,6 +300,22 @@ public abstract class BaseITCase {
         return Collections.emptyList();
     }
     
+    protected void assertProxyOrderRecordExist(final Object id) throws SQLException {
+        // must refresh firstly, otherwise proxy can't get schema and table info 
+        boolean recordExist = false;
+        proxyExecuteWithLog("REFRESH TABLE METADATA;", 2);
+        for (int i = 0; i < 5; i++) {
+            String sql = String.format("select * from %s where order_id = %s", String.join(".", SCHEMA_NAME, getTargetTableOrderName()), id);
+            List<Map<String, Object>> result = queryForListWithLog(sql);
+            recordExist = !result.isEmpty();
+            if (recordExist) {
+                break;
+            }
+            ThreadUtil.sleep(2, TimeUnit.SECONDS);
+        }
+        assertTrue("The insert record must exist after the stop", recordExist);
+    }
+    
     protected void assertGreaterThanOrderTableInitRows(final int tableInitRows, final String schema) throws SQLException {
         proxyExecuteWithLog("REFRESH TABLE METADATA", 2);
         String countSQL = Strings.isNullOrEmpty(schema) ? "SELECT COUNT(*) as count FROM t_order" : String.format("SELECT COUNT(*) as count FROM %s.t_order", schema);
diff --git a/test/integration-test/scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/cases/migration/general/MySQLMigrationGeneralIT.java b/test/integration-test/scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/cases/migration/general/MySQLMigrationGeneralIT.java
index 2929e143128..6cb495c3062 100644
--- a/test/integration-test/scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/cases/migration/general/MySQLMigrationGeneralIT.java
+++ b/test/integration-test/scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/cases/migration/general/MySQLMigrationGeneralIT.java
@@ -118,6 +118,5 @@ public final class MySQLMigrationGeneralIT extends AbstractMigrationITCase {
             assertTrue(Integer.parseInt(each.get("processed_records_count").toString()) > 0);
         }
         assertCheckMigrationSuccess(jobId, algorithmType);
-        stopMigrationByJobId(jobId);
     }
 }
diff --git a/test/integration-test/scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/cases/migration/general/PostgreSQLMigrationGeneralIT.java b/test/integration-test/scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/cases/migration/general/PostgreSQLMigrationGeneralIT.java
index 1768a6f002f..ce9f4b10c52 100644
--- a/test/integration-test/scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/cases/migration/general/PostgreSQLMigrationGeneralIT.java
+++ b/test/integration-test/scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/cases/migration/general/PostgreSQLMigrationGeneralIT.java
@@ -115,17 +115,12 @@ public final class PostgreSQLMigrationGeneralIT extends AbstractMigrationITCase
         startIncrementTask(new PostgreSQLIncrementTask(jdbcTemplate, SCHEMA_NAME, getSourceTableOrderName(), 20));
         String jobId = getJobIdByTableName(getSourceTableOrderName());
         waitIncrementTaskFinished(String.format("SHOW MIGRATION STATUS '%s'", jobId));
-        /*
-         * TODO Compatible with restart job, before stopping job, incremental_idle_seconds=16, before checking migration, incremental_idle_seconds=23, it just pass 7 seconds, and it's not enough for
-         * PostgreSQL incremental task to sync data
-         */
-        // stopMigrationByJobId(jobId);
-        // sourceExecuteWithLog(String.format("INSERT INTO %s.%s (order_id,user_id,status) VALUES (%s, %s, '%s')", SCHEMA_NAME, getSourceTableOrderName(), KEY_GENERATE_ALGORITHM.generateKey(),
-        // 1, "afterStop"));
-        // startMigrationByJobId(jobId);
-        // waitIncrementTaskFinished(String.format("SHOW MIGRATION STATUS '%s'", jobId));
-        assertCheckMigrationSuccess(jobId, "DATA_MATCH");
         stopMigrationByJobId(jobId);
+        Comparable<?> recordId = KEY_GENERATE_ALGORITHM.generateKey();
+        sourceExecuteWithLog(String.format("INSERT INTO %s (order_id,user_id,status) VALUES (%s, %s, '%s')", String.join(".", SCHEMA_NAME, getSourceTableOrderName()), recordId, 1, "afterStop"));
+        startMigrationByJobId(jobId);
+        assertProxyOrderRecordExist(recordId);
+        assertCheckMigrationSuccess(jobId, "DATA_MATCH");
     }
     
     private void checkOrderItemMigration() throws SQLException, InterruptedException {
@@ -133,6 +128,5 @@ public final class PostgreSQLMigrationGeneralIT extends AbstractMigrationITCase
         String jobId = getJobIdByTableName("t_order_item");
         waitIncrementTaskFinished(String.format("SHOW MIGRATION STATUS '%s'", jobId));
         assertCheckMigrationSuccess(jobId, "DATA_MATCH");
-        stopMigrationByJobId(jobId);
     }
 }
diff --git a/test/integration-test/scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/cases/migration/primarykey/TextPrimaryKeyMigrationIT.java b/test/integration-test/scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/cases/migration/primarykey/TextPrimaryKeyMigrationIT.java
index bd74d687c65..1d9751ab0b2 100644
--- a/test/integration-test/scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/cases/migration/primarykey/TextPrimaryKeyMigrationIT.java
+++ b/test/integration-test/scaling/src/test/java/org/apache/shardingsphere/integration/data/pipeline/cases/migration/primarykey/TextPrimaryKeyMigrationIT.java
@@ -97,7 +97,6 @@ public class TextPrimaryKeyMigrationIT extends AbstractMigrationITCase {
         } else {
             assertCheckMigrationSuccess(jobId, "DATA_MATCH");
         }
-        stopMigrationByJobId(jobId);
         if (ENV.getItEnvType() == ITEnvTypeEnum.DOCKER) {
             commitMigrationByJobId(jobId);
             List<String> lastJobIds = listJobId();