You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by me...@apache.org on 2021/03/01 08:45:23 UTC

[shardingsphere] branch master updated: Optimize ScalingEntry (#9545)

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

menghaoran 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 5799d02  Optimize ScalingEntry (#9545)
5799d02 is described below

commit 5799d0257665a4df219900369865ec27f66ef612
Author: 邱鹿 Lucas <lu...@163.com>
AuthorDate: Mon Mar 1 16:44:43 2021 +0800

    Optimize ScalingEntry (#9545)
    
    * Optimize ScalingEntry
    
    * rename Position to ScalingPosition
    
    Co-authored-by: qiulu3 <Lucas209910>
---
 .../scaling/core/common/record/DataRecord.java     |  4 ++--
 .../scaling/core/common/record/FinishedRecord.java |  4 ++--
 .../core/common/record/PlaceholderRecord.java      |  4 ++--
 .../scaling/core/common/record/Record.java         |  4 ++--
 .../scaling/core/config/DumperConfiguration.java   |  4 ++--
 ...DBCDumper.java => AbstractInventoryDumper.java} | 12 +++++------
 .../core/executor/dumper/DumperFactory.java        | 22 +++++++++----------
 .../{LogDumper.java => IncrementalDumper.java}     |  4 ++--
 .../{JDBCDumper.java => InventoryDumper.java}      |  4 ++--
 .../core/job/position/FinishedPosition.java        |  2 +-
 .../core/job/position/PlaceholderPosition.java     |  2 +-
 .../core/job/position/PositionInitializer.java     |  4 ++--
 .../core/job/position/PrimaryKeyPosition.java      |  2 +-
 .../{Position.java => ScalingPosition.java}        |  4 ++--
 .../core/job/preparer/ScalingJobPreparer.java      |  4 ++--
 .../preparer/splitter/InventoryTaskSplitter.java   | 12 +++++------
 .../scaling/core/job/progress/JobProgress.java     |  6 +++---
 .../task/incremental/IncrementalTaskProgress.java  |  4 ++--
 .../core/job/task/inventory/InventoryTask.java     |  4 ++--
 .../job/task/inventory/InventoryTaskProgress.java  |  4 ++--
 .../scaling/core/spi/ScalingEntry.java             | 16 +++++++-------
 .../distribution/DistributionChannelTest.java      |  4 ++--
 ...Dumper.java => FixtureH2IncrementalDumper.java} |  8 +++----
 ...BCDumper.java => FixtureH2InventoryDumper.java} |  6 +++---
 .../core/fixture/FixtureH2ScalingEntry.java        | 12 +++++------
 .../scaling/mysql/MySQLScalingEntry.java           | 25 ++++++++--------------
 .../scaling/mysql/binlog/BinlogPosition.java       |  4 ++--
 .../scaling/mysql/component/MySQLBinlogDumper.java | 20 ++++++++---------
 ...QLJdbcDumper.java => MySQLInventoryDumper.java} |  8 +++----
 .../scaling/mysql/MySQLScalingEntryTest.java       |  6 +++---
 .../mysql/component/MySQLJdbcDumperTest.java       |  6 +++---
 .../scaling/postgresql/PostgreSQLScalingEntry.java | 25 ++++++++--------------
 ...cDumper.java => PostgreSQLInventoryDumper.java} |  8 +++----
 .../postgresql/component/PostgreSQLWalDumper.java  | 14 ++++++------
 .../scaling/postgresql/wal/WalPosition.java        |  4 ++--
 .../postgresql/PostgreSQLScalingEntryTest.java     |  6 +++---
 .../component/PostgreSQLJdbcDumperTest.java        |  6 +++---
 37 files changed, 137 insertions(+), 151 deletions(-)

diff --git a/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/common/record/DataRecord.java b/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/common/record/DataRecord.java
index 45ffdd0..911148f 100644
--- a/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/common/record/DataRecord.java
+++ b/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/common/record/DataRecord.java
@@ -22,7 +22,7 @@ import lombok.Getter;
 import lombok.RequiredArgsConstructor;
 import lombok.Setter;
 import lombok.ToString;
-import org.apache.shardingsphere.scaling.core.job.position.Position;
+import org.apache.shardingsphere.scaling.core.job.position.ScalingPosition;
 
 import java.util.ArrayList;
 import java.util.LinkedList;
@@ -47,7 +47,7 @@ public final class DataRecord extends Record {
     
     private String tableName;
     
-    public DataRecord(final Position<?> position, final int columnCount) {
+    public DataRecord(final ScalingPosition<?> position, final int columnCount) {
         super(position);
         columns = new ArrayList<>(columnCount);
     }
diff --git a/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/common/record/FinishedRecord.java b/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/common/record/FinishedRecord.java
index c2ca8e7..df7a671 100644
--- a/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/common/record/FinishedRecord.java
+++ b/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/common/record/FinishedRecord.java
@@ -17,14 +17,14 @@
 
 package org.apache.shardingsphere.scaling.core.common.record;
 
-import org.apache.shardingsphere.scaling.core.job.position.Position;
+import org.apache.shardingsphere.scaling.core.job.position.ScalingPosition;
 
 /**
  * Finished record.
  */
 public final class FinishedRecord extends Record {
     
-    public FinishedRecord(final Position<?> position) {
+    public FinishedRecord(final ScalingPosition<?> position) {
         super(position);
     }
 }
diff --git a/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/common/record/PlaceholderRecord.java b/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/common/record/PlaceholderRecord.java
index fd7496b..69caeeb 100644
--- a/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/common/record/PlaceholderRecord.java
+++ b/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/common/record/PlaceholderRecord.java
@@ -17,14 +17,14 @@
 
 package org.apache.shardingsphere.scaling.core.common.record;
 
-import org.apache.shardingsphere.scaling.core.job.position.Position;
+import org.apache.shardingsphere.scaling.core.job.position.ScalingPosition;
 
 /**
  * Placeholder record.
  */
 public final class PlaceholderRecord extends Record {
     
-    public PlaceholderRecord(final Position<?> position) {
+    public PlaceholderRecord(final ScalingPosition<?> position) {
         super(position);
     }
 }
diff --git a/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/common/record/Record.java b/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/common/record/Record.java
index 9de7d89..2e22ced 100644
--- a/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/common/record/Record.java
+++ b/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/common/record/Record.java
@@ -20,7 +20,7 @@ package org.apache.shardingsphere.scaling.core.common.record;
 import lombok.Getter;
 import lombok.RequiredArgsConstructor;
 import lombok.Setter;
-import org.apache.shardingsphere.scaling.core.job.position.Position;
+import org.apache.shardingsphere.scaling.core.job.position.ScalingPosition;
 
 /**
  * Record interface.
@@ -30,7 +30,7 @@ import org.apache.shardingsphere.scaling.core.job.position.Position;
 @Setter
 public abstract class Record {
     
-    private final Position<?> position;
+    private final ScalingPosition<?> position;
         
     private long commitTime;
 }
diff --git a/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/config/DumperConfiguration.java b/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/config/DumperConfiguration.java
index 77ad701..fd0a632 100644
--- a/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/config/DumperConfiguration.java
+++ b/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/config/DumperConfiguration.java
@@ -20,7 +20,7 @@ package org.apache.shardingsphere.scaling.core.config;
 import lombok.Getter;
 import lombok.Setter;
 import org.apache.shardingsphere.scaling.core.config.datasource.ScalingDataSourceConfiguration;
-import org.apache.shardingsphere.scaling.core.job.position.Position;
+import org.apache.shardingsphere.scaling.core.job.position.ScalingPosition;
 
 import java.util.Map;
 
@@ -35,7 +35,7 @@ public class DumperConfiguration {
     
     private ScalingDataSourceConfiguration dataSourceConfig;
     
-    private Position<?> position;
+    private ScalingPosition<?> position;
     
     private Map<String, String> tableNameMap;
 }
diff --git a/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/executor/dumper/AbstractJDBCDumper.java b/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/executor/dumper/AbstractInventoryDumper.java
similarity index 91%
rename from shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/executor/dumper/AbstractJDBCDumper.java
rename to shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/executor/dumper/AbstractInventoryDumper.java
index 1f9eaee..c500463 100644
--- a/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/executor/dumper/AbstractJDBCDumper.java
+++ b/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/executor/dumper/AbstractInventoryDumper.java
@@ -36,8 +36,8 @@ import org.apache.shardingsphere.scaling.core.config.datasource.StandardJDBCData
 import org.apache.shardingsphere.scaling.core.executor.AbstractScalingExecutor;
 import org.apache.shardingsphere.scaling.core.job.position.FinishedPosition;
 import org.apache.shardingsphere.scaling.core.job.position.PlaceholderPosition;
-import org.apache.shardingsphere.scaling.core.job.position.Position;
 import org.apache.shardingsphere.scaling.core.job.position.PrimaryKeyPosition;
+import org.apache.shardingsphere.scaling.core.job.position.ScalingPosition;
 
 import java.sql.Connection;
 import java.sql.PreparedStatement;
@@ -49,7 +49,7 @@ import java.sql.SQLException;
  * Abstract JDBC dumper implement.
  */
 @Slf4j
-public abstract class AbstractJDBCDumper extends AbstractScalingExecutor implements JDBCDumper {
+public abstract class AbstractInventoryDumper extends AbstractScalingExecutor implements InventoryDumper {
     
     @Getter(AccessLevel.PROTECTED)
     private final InventoryDumperConfiguration inventoryDumperConfig;
@@ -61,9 +61,9 @@ public abstract class AbstractJDBCDumper extends AbstractScalingExecutor impleme
     @Setter
     private Channel channel;
     
-    protected AbstractJDBCDumper(final InventoryDumperConfiguration inventoryDumperConfig, final DataSourceManager dataSourceManager) {
+    protected AbstractInventoryDumper(final InventoryDumperConfiguration inventoryDumperConfig, final DataSourceManager dataSourceManager) {
         if (!StandardJDBCDataSourceConfiguration.class.equals(inventoryDumperConfig.getDataSourceConfig().getClass())) {
-            throw new UnsupportedOperationException("AbstractJDBCDumper only support JDBCDataSourceConfiguration");
+            throw new UnsupportedOperationException("AbstractInventoryDumper only support StandardJDBCDataSourceConfiguration");
         }
         this.inventoryDumperConfig = inventoryDumperConfig;
         this.dataSourceManager = dataSourceManager;
@@ -106,7 +106,7 @@ public abstract class AbstractJDBCDumper extends AbstractScalingExecutor impleme
         }
     }
     
-    private String getWhereCondition(final String primaryKey, final Position<?> position) {
+    private String getWhereCondition(final String primaryKey, final ScalingPosition<?> position) {
         if (null == primaryKey || null == position) {
             return "";
         }
@@ -114,7 +114,7 @@ public abstract class AbstractJDBCDumper extends AbstractScalingExecutor impleme
         return String.format("WHERE %s BETWEEN %d AND %d", primaryKey, primaryKeyPosition.getBeginValue(), primaryKeyPosition.getEndValue());
     }
     
-    private Position<?> newPosition(final ResultSet rs) throws SQLException {
+    private ScalingPosition<?> newPosition(final ResultSet rs) throws SQLException {
         if (null == inventoryDumperConfig.getPrimaryKey()) {
             return new PlaceholderPosition();
         }
diff --git a/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/executor/dumper/DumperFactory.java b/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/executor/dumper/DumperFactory.java
index 9b84a15..40f70ff 100644
--- a/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/executor/dumper/DumperFactory.java
+++ b/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/executor/dumper/DumperFactory.java
@@ -23,7 +23,7 @@ import lombok.SneakyThrows;
 import org.apache.shardingsphere.scaling.core.common.datasource.DataSourceManager;
 import org.apache.shardingsphere.scaling.core.config.DumperConfiguration;
 import org.apache.shardingsphere.scaling.core.config.InventoryDumperConfiguration;
-import org.apache.shardingsphere.scaling.core.job.position.Position;
+import org.apache.shardingsphere.scaling.core.job.position.ScalingPosition;
 import org.apache.shardingsphere.scaling.core.spi.ScalingEntry;
 import org.apache.shardingsphere.scaling.core.spi.ScalingEntryLoader;
 
@@ -34,40 +34,40 @@ import org.apache.shardingsphere.scaling.core.spi.ScalingEntryLoader;
 public final class DumperFactory {
     
     /**
-     * New instance of JDBC dumper.
+     * New instance of inventory dumper.
      *
      * @param inventoryDumperConfig inventory dumper configuration
      * @param dataSourceManager data source factory
      * @return JDBC dumper
      */
     @SneakyThrows(ReflectiveOperationException.class)
-    public static JDBCDumper newInstanceJdbcDumper(final InventoryDumperConfiguration inventoryDumperConfig, final DataSourceManager dataSourceManager) {
+    public static InventoryDumper newInstanceJdbcDumper(final InventoryDumperConfiguration inventoryDumperConfig, final DataSourceManager dataSourceManager) {
         ScalingEntry scalingEntry = ScalingEntryLoader.getInstance(inventoryDumperConfig.getDataSourceConfig().getDatabaseType().getName());
-        return scalingEntry.getJdbcDumperClass().getConstructor(InventoryDumperConfiguration.class, DataSourceManager.class).newInstance(inventoryDumperConfig, dataSourceManager);
+        return scalingEntry.getInventoryDumperClass().getConstructor(InventoryDumperConfiguration.class, DataSourceManager.class).newInstance(inventoryDumperConfig, dataSourceManager);
     }
     
     /**
-     * New instance of log dumper.
+     * New instance of incremental dumper.
      *
-     * @param dumperConfig rdbms configuration
+     * @param dumperConfig dumper configuration
      * @param position position
      * @return log dumper
      */
-    public static LogDumper newInstanceLogDumper(final DumperConfiguration dumperConfig, final Position<?> position) {
+    public static IncrementalDumper newInstanceLogDumper(final DumperConfiguration dumperConfig, final ScalingPosition<?> position) {
         return newInstanceLogDumper(dumperConfig.getDataSourceConfig().getDatabaseType().getName(), dumperConfig, position);
     }
     
     /**
-     * New instance of log dumper.
+     * New instance of incremental dumper.
      *
      * @param databaseType database type
-     * @param dumperConfig rdbms configuration
+     * @param dumperConfig dumper configuration
      * @param position position
      * @return log dumper
      */
     @SneakyThrows(ReflectiveOperationException.class)
-    public static LogDumper newInstanceLogDumper(final String databaseType, final DumperConfiguration dumperConfig, final Position<?> position) {
+    public static IncrementalDumper newInstanceLogDumper(final String databaseType, final DumperConfiguration dumperConfig, final ScalingPosition<?> position) {
         ScalingEntry scalingEntry = ScalingEntryLoader.getInstance(databaseType);
-        return scalingEntry.getLogDumperClass().getConstructor(DumperConfiguration.class, Position.class).newInstance(dumperConfig, position);
+        return scalingEntry.getIncrementalDumperClass().getConstructor(DumperConfiguration.class, ScalingPosition.class).newInstance(dumperConfig, position);
     }
 }
diff --git a/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/executor/dumper/LogDumper.java b/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/executor/dumper/IncrementalDumper.java
similarity index 92%
rename from shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/executor/dumper/LogDumper.java
rename to shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/executor/dumper/IncrementalDumper.java
index 3257c2e..01220f1 100644
--- a/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/executor/dumper/LogDumper.java
+++ b/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/executor/dumper/IncrementalDumper.java
@@ -18,7 +18,7 @@
 package org.apache.shardingsphere.scaling.core.executor.dumper;
 
 /**
- * Log dumper.
+ * Incremental dumper.
  */
-public interface LogDumper extends Dumper {
+public interface IncrementalDumper extends Dumper {
 }
diff --git a/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/executor/dumper/JDBCDumper.java b/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/executor/dumper/InventoryDumper.java
similarity index 92%
rename from shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/executor/dumper/JDBCDumper.java
rename to shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/executor/dumper/InventoryDumper.java
index aa41063..968e9dc 100644
--- a/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/executor/dumper/JDBCDumper.java
+++ b/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/executor/dumper/InventoryDumper.java
@@ -18,7 +18,7 @@
 package org.apache.shardingsphere.scaling.core.executor.dumper;
 
 /**
- * JDBC dumper.
+ * Inventory dumper.
  */
-public interface JDBCDumper extends Dumper {
+public interface InventoryDumper extends Dumper {
 }
diff --git a/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/job/position/FinishedPosition.java b/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/job/position/FinishedPosition.java
index 79fa480..3f6876e 100644
--- a/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/job/position/FinishedPosition.java
+++ b/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/job/position/FinishedPosition.java
@@ -20,7 +20,7 @@ package org.apache.shardingsphere.scaling.core.job.position;
 /**
  * Finished inventory position.
  */
-public final class FinishedPosition implements Position<FinishedPosition> {
+public final class FinishedPosition implements ScalingPosition<FinishedPosition> {
     
     @Override
     public int compareTo(final FinishedPosition position) {
diff --git a/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/job/position/PlaceholderPosition.java b/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/job/position/PlaceholderPosition.java
index f79c5e1..3f882a5 100644
--- a/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/job/position/PlaceholderPosition.java
+++ b/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/job/position/PlaceholderPosition.java
@@ -20,7 +20,7 @@ package org.apache.shardingsphere.scaling.core.job.position;
 /**
  * Placeholder position.
  */
-public final class PlaceholderPosition implements Position<PlaceholderPosition> {
+public final class PlaceholderPosition implements ScalingPosition<PlaceholderPosition> {
     
     @Override
     public int compareTo(final PlaceholderPosition position) {
diff --git a/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/job/position/PositionInitializer.java b/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/job/position/PositionInitializer.java
index ab3bfbb..30865c8 100644
--- a/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/job/position/PositionInitializer.java
+++ b/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/job/position/PositionInitializer.java
@@ -32,7 +32,7 @@ public interface PositionInitializer {
      * @return position
      * @throws SQLException SQL exception
      */
-    Position<?> init(DataSource dataSource) throws SQLException;
+    ScalingPosition<?> init(DataSource dataSource) throws SQLException;
     
     /**
      * Init position by string data.
@@ -40,5 +40,5 @@ public interface PositionInitializer {
      * @param data string data
      * @return position
      */
-    Position<?> init(String data);
+    ScalingPosition<?> init(String data);
 }
diff --git a/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/job/position/PrimaryKeyPosition.java b/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/job/position/PrimaryKeyPosition.java
index f7325aa..6d260fb 100644
--- a/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/job/position/PrimaryKeyPosition.java
+++ b/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/job/position/PrimaryKeyPosition.java
@@ -26,7 +26,7 @@ import lombok.RequiredArgsConstructor;
  */
 @RequiredArgsConstructor
 @Getter
-public final class PrimaryKeyPosition implements Position<PrimaryKeyPosition> {
+public final class PrimaryKeyPosition implements ScalingPosition<PrimaryKeyPosition> {
     
     private final long beginValue;
     
diff --git a/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/job/position/Position.java b/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/job/position/ScalingPosition.java
similarity index 91%
rename from shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/job/position/Position.java
rename to shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/job/position/ScalingPosition.java
index 100e2ee..62ac139 100644
--- a/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/job/position/Position.java
+++ b/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/job/position/ScalingPosition.java
@@ -18,7 +18,7 @@
 package org.apache.shardingsphere.scaling.core.job.position;
 
 /**
- * Position interface.
+ * Scaling position.
  */
-public interface Position<T> extends Comparable<T> {
+public interface ScalingPosition<T> extends Comparable<T> {
 }
diff --git a/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/job/preparer/ScalingJobPreparer.java b/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/job/preparer/ScalingJobPreparer.java
index d258161..94fc1d9 100644
--- a/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/job/preparer/ScalingJobPreparer.java
+++ b/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/job/preparer/ScalingJobPreparer.java
@@ -23,8 +23,8 @@ import org.apache.shardingsphere.scaling.core.common.exception.PrepareFailedExce
 import org.apache.shardingsphere.scaling.core.config.TaskConfiguration;
 import org.apache.shardingsphere.scaling.core.job.JobContext;
 import org.apache.shardingsphere.scaling.core.job.JobStatus;
-import org.apache.shardingsphere.scaling.core.job.position.Position;
 import org.apache.shardingsphere.scaling.core.job.position.PositionInitializerFactory;
+import org.apache.shardingsphere.scaling.core.job.position.ScalingPosition;
 import org.apache.shardingsphere.scaling.core.job.preparer.checker.DataSourceChecker;
 import org.apache.shardingsphere.scaling.core.job.preparer.checker.DataSourceCheckerFactory;
 import org.apache.shardingsphere.scaling.core.job.preparer.splitter.InventoryTaskSplitter;
@@ -93,7 +93,7 @@ public final class ScalingJobPreparer {
         }
     }
     
-    private Position<?> getIncrementalPosition(final JobContext jobContext, final TaskConfiguration taskConfig, final DataSourceManager dataSourceManager) throws SQLException {
+    private ScalingPosition<?> getIncrementalPosition(final JobContext jobContext, final TaskConfiguration taskConfig, final DataSourceManager dataSourceManager) throws SQLException {
         if (null != jobContext.getInitProgress()) {
             return jobContext.getInitProgress().getIncrementalPosition(taskConfig.getDumperConfig().getDataSourceName());
         }
diff --git a/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/job/preparer/splitter/InventoryTaskSplitter.java b/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/job/preparer/splitter/InventoryTaskSplitter.java
index 43e0ef8..e5d2df6 100644
--- a/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/job/preparer/splitter/InventoryTaskSplitter.java
+++ b/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/job/preparer/splitter/InventoryTaskSplitter.java
@@ -29,8 +29,8 @@ import org.apache.shardingsphere.scaling.core.config.InventoryDumperConfiguratio
 import org.apache.shardingsphere.scaling.core.config.TaskConfiguration;
 import org.apache.shardingsphere.scaling.core.job.JobContext;
 import org.apache.shardingsphere.scaling.core.job.position.PlaceholderPosition;
-import org.apache.shardingsphere.scaling.core.job.position.Position;
 import org.apache.shardingsphere.scaling.core.job.position.PrimaryKeyPosition;
+import org.apache.shardingsphere.scaling.core.job.position.ScalingPosition;
 import org.apache.shardingsphere.scaling.core.job.task.ScalingTaskFactory;
 import org.apache.shardingsphere.scaling.core.job.task.inventory.InventoryTask;
 
@@ -92,9 +92,9 @@ public final class InventoryTaskSplitter {
     private Collection<InventoryDumperConfiguration> splitByPrimaryKey(
             final JobContext jobContext, final DataSource dataSource, final MetaDataManager metaDataManager, final InventoryDumperConfiguration dumperConfig) {
         Collection<InventoryDumperConfiguration> result = new LinkedList<>();
-        Collection<Position<?>> inventoryPositions = getInventoryPositions(jobContext, dumperConfig, dataSource, metaDataManager);
+        Collection<ScalingPosition<?>> inventoryPositions = getInventoryPositions(jobContext, dumperConfig, dataSource, metaDataManager);
         int i = 0;
-        for (Position<?> inventoryPosition : inventoryPositions) {
+        for (ScalingPosition<?> inventoryPosition : inventoryPositions) {
             InventoryDumperConfiguration splitDumperConfig = new InventoryDumperConfiguration(dumperConfig);
             splitDumperConfig.setPosition(inventoryPosition);
             splitDumperConfig.setShardingItem(i++);
@@ -105,7 +105,7 @@ public final class InventoryTaskSplitter {
         return result;
     }
     
-    private Collection<Position<?>> getInventoryPositions(
+    private Collection<ScalingPosition<?>> getInventoryPositions(
             final JobContext jobContext, final InventoryDumperConfiguration dumperConfig, final DataSource dataSource, final MetaDataManager metaDataManager) {
         if (null != jobContext.getInitProgress()) {
             return jobContext.getInitProgress().getInventoryPosition(dumperConfig.getTableName()).values();
@@ -145,8 +145,8 @@ public final class InventoryTaskSplitter {
         return Types.INTEGER != columnType && Types.BIGINT != columnType && Types.SMALLINT != columnType && Types.TINYINT != columnType;
     }
     
-    private Collection<Position<?>> getPositionByPrimaryKeyRange(final JobContext jobContext, final DataSource dataSource, final InventoryDumperConfiguration dumperConfig) {
-        Collection<Position<?>> result = new ArrayList<>();
+    private Collection<ScalingPosition<?>> getPositionByPrimaryKeyRange(final JobContext jobContext, final DataSource dataSource, final InventoryDumperConfiguration dumperConfig) {
+        Collection<ScalingPosition<?>> result = new ArrayList<>();
         String sql = ScalingSQLBuilderFactory.newInstance(jobContext.getJobConfig().getHandleConfig().getDatabaseType())
                 .buildSplitByPrimaryKeyRangeSQL(dumperConfig.getTableName(), dumperConfig.getPrimaryKey());
         try (Connection connection = dataSource.getConnection();
diff --git a/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/job/progress/JobProgress.java b/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/job/progress/JobProgress.java
index c3998c5..8664875 100644
--- a/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/job/progress/JobProgress.java
+++ b/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/job/progress/JobProgress.java
@@ -22,7 +22,7 @@ import lombok.Setter;
 import org.apache.shardingsphere.infra.yaml.engine.YamlEngine;
 import org.apache.shardingsphere.scaling.core.job.JobStatus;
 import org.apache.shardingsphere.scaling.core.job.position.FinishedPosition;
-import org.apache.shardingsphere.scaling.core.job.position.Position;
+import org.apache.shardingsphere.scaling.core.job.position.ScalingPosition;
 import org.apache.shardingsphere.scaling.core.job.progress.yaml.JobProgressYamlSwapper;
 import org.apache.shardingsphere.scaling.core.job.progress.yaml.YamlJobProgress;
 import org.apache.shardingsphere.scaling.core.job.task.incremental.IncrementalTaskProgress;
@@ -68,7 +68,7 @@ public final class JobProgress {
      * @param dataSourceName data source name
      * @return incremental position
      */
-    public Position<?> getIncrementalPosition(final String dataSourceName) {
+    public ScalingPosition<?> getIncrementalPosition(final String dataSourceName) {
         return incrementalTaskProgressMap.get(dataSourceName).getPosition();
     }
     
@@ -78,7 +78,7 @@ public final class JobProgress {
      * @param tableName table name
      * @return inventory position
      */
-    public Map<String, Position<?>> getInventoryPosition(final String tableName) {
+    public Map<String, ScalingPosition<?>> getInventoryPosition(final String tableName) {
         Pattern pattern = Pattern.compile(String.format("%s(#\\d+)?", tableName));
         return inventoryTaskProgressMap.entrySet().stream()
                 .filter(entry -> pattern.matcher(entry.getKey()).find())
diff --git a/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/job/task/incremental/IncrementalTaskProgress.java b/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/job/task/incremental/IncrementalTaskProgress.java
index d082ea6..5c48831 100644
--- a/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/job/task/incremental/IncrementalTaskProgress.java
+++ b/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/job/task/incremental/IncrementalTaskProgress.java
@@ -21,7 +21,7 @@ import lombok.AllArgsConstructor;
 import lombok.Getter;
 import lombok.RequiredArgsConstructor;
 import lombok.Setter;
-import org.apache.shardingsphere.scaling.core.job.position.Position;
+import org.apache.shardingsphere.scaling.core.job.position.ScalingPosition;
 import org.apache.shardingsphere.scaling.core.job.progress.Progress;
 
 /**
@@ -33,7 +33,7 @@ import org.apache.shardingsphere.scaling.core.job.progress.Progress;
 @Setter
 public final class IncrementalTaskProgress implements Progress {
     
-    private final Position<?> position;
+    private final ScalingPosition<?> position;
     
     private IncrementalTaskDelay incrementalTaskDelay = new IncrementalTaskDelay();
 }
diff --git a/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/job/task/inventory/InventoryTask.java b/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/job/task/inventory/InventoryTask.java
index 311fd4a..ae9662b 100644
--- a/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/job/task/inventory/InventoryTask.java
+++ b/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/job/task/inventory/InventoryTask.java
@@ -33,7 +33,7 @@ import org.apache.shardingsphere.scaling.core.executor.engine.ExecuteCallback;
 import org.apache.shardingsphere.scaling.core.executor.importer.Importer;
 import org.apache.shardingsphere.scaling.core.executor.importer.ImporterFactory;
 import org.apache.shardingsphere.scaling.core.job.position.PlaceholderPosition;
-import org.apache.shardingsphere.scaling.core.job.position.Position;
+import org.apache.shardingsphere.scaling.core.job.position.ScalingPosition;
 import org.apache.shardingsphere.scaling.core.job.task.ScalingTask;
 
 import java.util.Optional;
@@ -57,7 +57,7 @@ public final class InventoryTask extends AbstractScalingExecutor implements Scal
     
     private Dumper dumper;
     
-    private Position<?> position;
+    private ScalingPosition<?> position;
     
     public InventoryTask(final InventoryDumperConfiguration inventoryDumperConfig, final ImporterConfiguration importerConfig) {
         this(inventoryDumperConfig, importerConfig, new DataSourceManager());
diff --git a/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/job/task/inventory/InventoryTaskProgress.java b/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/job/task/inventory/InventoryTaskProgress.java
index d8c0941..432b2d1 100644
--- a/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/job/task/inventory/InventoryTaskProgress.java
+++ b/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/job/task/inventory/InventoryTaskProgress.java
@@ -19,7 +19,7 @@ package org.apache.shardingsphere.scaling.core.job.task.inventory;
 
 import lombok.Getter;
 import lombok.RequiredArgsConstructor;
-import org.apache.shardingsphere.scaling.core.job.position.Position;
+import org.apache.shardingsphere.scaling.core.job.position.ScalingPosition;
 import org.apache.shardingsphere.scaling.core.job.progress.Progress;
 
 /**
@@ -29,5 +29,5 @@ import org.apache.shardingsphere.scaling.core.job.progress.Progress;
 @Getter
 public final class InventoryTaskProgress implements Progress {
     
-    private final Position<?> position;
+    private final ScalingPosition<?> position;
 }
diff --git a/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/spi/ScalingEntry.java b/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/spi/ScalingEntry.java
index 011542e..fdc5087 100644
--- a/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/spi/ScalingEntry.java
+++ b/shardingsphere-scaling/shardingsphere-scaling-core/src/main/java/org/apache/shardingsphere/scaling/core/spi/ScalingEntry.java
@@ -19,8 +19,8 @@ package org.apache.shardingsphere.scaling.core.spi;
 
 import org.apache.shardingsphere.infra.database.type.DatabaseTypeAwareSPI;
 import org.apache.shardingsphere.scaling.core.common.sqlbuilder.ScalingSQLBuilder;
-import org.apache.shardingsphere.scaling.core.executor.dumper.JDBCDumper;
-import org.apache.shardingsphere.scaling.core.executor.dumper.LogDumper;
+import org.apache.shardingsphere.scaling.core.executor.dumper.IncrementalDumper;
+import org.apache.shardingsphere.scaling.core.executor.dumper.InventoryDumper;
 import org.apache.shardingsphere.scaling.core.executor.importer.Importer;
 import org.apache.shardingsphere.scaling.core.job.check.DataConsistencyChecker;
 import org.apache.shardingsphere.scaling.core.job.position.PositionInitializer;
@@ -32,18 +32,18 @@ import org.apache.shardingsphere.scaling.core.job.preparer.checker.DataSourceChe
 public interface ScalingEntry extends DatabaseTypeAwareSPI {
     
     /**
-     * Get JDBC dumper type.
+     * Get inventory dumper type.
      *
-     * @return JDBC dumper type
+     * @return inventory dumper type
      */
-    Class<? extends JDBCDumper> getJdbcDumperClass();
+    Class<? extends InventoryDumper> getInventoryDumperClass();
     
     /**
-     * Get log dumper type.
+     * Get incremental dumper type.
      *
-     * @return log dumper type
+     * @return incremental dumper type
      */
-    Class<? extends LogDumper> getLogDumperClass();
+    Class<? extends IncrementalDumper> getIncrementalDumperClass();
     
     /**
      * Get position initializer type.
diff --git a/shardingsphere-scaling/shardingsphere-scaling-core/src/test/java/org/apache/shardingsphere/scaling/core/common/channel/distribution/DistributionChannelTest.java b/shardingsphere-scaling/shardingsphere-scaling-core/src/test/java/org/apache/shardingsphere/scaling/core/common/channel/distribution/DistributionChannelTest.java
index 65cdec5..033ac9d 100644
--- a/shardingsphere-scaling/shardingsphere-scaling-core/src/test/java/org/apache/shardingsphere/scaling/core/common/channel/distribution/DistributionChannelTest.java
+++ b/shardingsphere-scaling/shardingsphere-scaling-core/src/test/java/org/apache/shardingsphere/scaling/core/common/channel/distribution/DistributionChannelTest.java
@@ -28,7 +28,7 @@ import org.apache.shardingsphere.scaling.core.common.record.Record;
 import org.apache.shardingsphere.scaling.core.config.ScalingContext;
 import org.apache.shardingsphere.scaling.core.config.ServerConfiguration;
 import org.apache.shardingsphere.scaling.core.job.position.PlaceholderPosition;
-import org.apache.shardingsphere.scaling.core.job.position.Position;
+import org.apache.shardingsphere.scaling.core.job.position.ScalingPosition;
 import org.junit.Before;
 import org.junit.Test;
 
@@ -116,7 +116,7 @@ public final class DistributionChannelTest {
     
     @RequiredArgsConstructor
     @Getter
-    private static final class IntPosition implements Position<IntPosition> {
+    private static final class IntPosition implements ScalingPosition<IntPosition> {
         
         private final int id;
         
diff --git a/shardingsphere-scaling/shardingsphere-scaling-core/src/test/java/org/apache/shardingsphere/scaling/core/fixture/FixtureH2LogDumper.java b/shardingsphere-scaling/shardingsphere-scaling-core/src/test/java/org/apache/shardingsphere/scaling/core/fixture/FixtureH2IncrementalDumper.java
similarity index 78%
rename from shardingsphere-scaling/shardingsphere-scaling-core/src/test/java/org/apache/shardingsphere/scaling/core/fixture/FixtureH2LogDumper.java
rename to shardingsphere-scaling/shardingsphere-scaling-core/src/test/java/org/apache/shardingsphere/scaling/core/fixture/FixtureH2IncrementalDumper.java
index 54fcf5e..f872216 100644
--- a/shardingsphere-scaling/shardingsphere-scaling-core/src/test/java/org/apache/shardingsphere/scaling/core/fixture/FixtureH2LogDumper.java
+++ b/shardingsphere-scaling/shardingsphere-scaling-core/src/test/java/org/apache/shardingsphere/scaling/core/fixture/FixtureH2IncrementalDumper.java
@@ -19,12 +19,12 @@ package org.apache.shardingsphere.scaling.core.fixture;
 
 import org.apache.shardingsphere.scaling.core.common.channel.Channel;
 import org.apache.shardingsphere.scaling.core.config.DumperConfiguration;
-import org.apache.shardingsphere.scaling.core.executor.dumper.LogDumper;
-import org.apache.shardingsphere.scaling.core.job.position.Position;
+import org.apache.shardingsphere.scaling.core.executor.dumper.IncrementalDumper;
+import org.apache.shardingsphere.scaling.core.job.position.ScalingPosition;
 
-public final class FixtureH2LogDumper implements LogDumper {
+public final class FixtureH2IncrementalDumper implements IncrementalDumper {
     
-    public FixtureH2LogDumper(final DumperConfiguration dumperConfig, final Position<?> position) {
+    public FixtureH2IncrementalDumper(final DumperConfiguration dumperConfig, final ScalingPosition<?> position) {
     }
     
     @Override
diff --git a/shardingsphere-scaling/shardingsphere-scaling-core/src/test/java/org/apache/shardingsphere/scaling/core/fixture/FixtureH2JDBCDumper.java b/shardingsphere-scaling/shardingsphere-scaling-core/src/test/java/org/apache/shardingsphere/scaling/core/fixture/FixtureH2InventoryDumper.java
similarity index 86%
rename from shardingsphere-scaling/shardingsphere-scaling-core/src/test/java/org/apache/shardingsphere/scaling/core/fixture/FixtureH2JDBCDumper.java
rename to shardingsphere-scaling/shardingsphere-scaling-core/src/test/java/org/apache/shardingsphere/scaling/core/fixture/FixtureH2InventoryDumper.java
index de25e58..e7c9f68 100644
--- a/shardingsphere-scaling/shardingsphere-scaling-core/src/test/java/org/apache/shardingsphere/scaling/core/fixture/FixtureH2JDBCDumper.java
+++ b/shardingsphere-scaling/shardingsphere-scaling-core/src/test/java/org/apache/shardingsphere/scaling/core/fixture/FixtureH2InventoryDumper.java
@@ -19,15 +19,15 @@ package org.apache.shardingsphere.scaling.core.fixture;
 
 import org.apache.shardingsphere.scaling.core.common.datasource.DataSourceManager;
 import org.apache.shardingsphere.scaling.core.config.InventoryDumperConfiguration;
-import org.apache.shardingsphere.scaling.core.executor.dumper.AbstractJDBCDumper;
+import org.apache.shardingsphere.scaling.core.executor.dumper.AbstractInventoryDumper;
 
 import java.sql.Connection;
 import java.sql.PreparedStatement;
 import java.sql.SQLException;
 
-public final class FixtureH2JDBCDumper extends AbstractJDBCDumper {
+public final class FixtureH2InventoryDumper extends AbstractInventoryDumper {
     
-    public FixtureH2JDBCDumper(final InventoryDumperConfiguration dumperConfig, final DataSourceManager dataSourceManager) {
+    public FixtureH2InventoryDumper(final InventoryDumperConfiguration dumperConfig, final DataSourceManager dataSourceManager) {
         super(dumperConfig, dataSourceManager);
     }
     
diff --git a/shardingsphere-scaling/shardingsphere-scaling-core/src/test/java/org/apache/shardingsphere/scaling/core/fixture/FixtureH2ScalingEntry.java b/shardingsphere-scaling/shardingsphere-scaling-core/src/test/java/org/apache/shardingsphere/scaling/core/fixture/FixtureH2ScalingEntry.java
index 8ab5162..478f9aa 100644
--- a/shardingsphere-scaling/shardingsphere-scaling-core/src/test/java/org/apache/shardingsphere/scaling/core/fixture/FixtureH2ScalingEntry.java
+++ b/shardingsphere-scaling/shardingsphere-scaling-core/src/test/java/org/apache/shardingsphere/scaling/core/fixture/FixtureH2ScalingEntry.java
@@ -18,8 +18,8 @@
 package org.apache.shardingsphere.scaling.core.fixture;
 
 import org.apache.shardingsphere.scaling.core.common.sqlbuilder.ScalingSQLBuilder;
-import org.apache.shardingsphere.scaling.core.executor.dumper.JDBCDumper;
-import org.apache.shardingsphere.scaling.core.executor.dumper.LogDumper;
+import org.apache.shardingsphere.scaling.core.executor.dumper.IncrementalDumper;
+import org.apache.shardingsphere.scaling.core.executor.dumper.InventoryDumper;
 import org.apache.shardingsphere.scaling.core.executor.importer.Importer;
 import org.apache.shardingsphere.scaling.core.job.check.DataConsistencyChecker;
 import org.apache.shardingsphere.scaling.core.job.position.PositionInitializer;
@@ -29,13 +29,13 @@ import org.apache.shardingsphere.scaling.core.spi.ScalingEntry;
 public final class FixtureH2ScalingEntry implements ScalingEntry {
     
     @Override
-    public Class<? extends JDBCDumper> getJdbcDumperClass() {
-        return FixtureH2JDBCDumper.class;
+    public Class<? extends InventoryDumper> getInventoryDumperClass() {
+        return FixtureH2InventoryDumper.class;
     }
     
     @Override
-    public Class<? extends LogDumper> getLogDumperClass() {
-        return FixtureH2LogDumper.class;
+    public Class<? extends IncrementalDumper> getIncrementalDumperClass() {
+        return FixtureH2IncrementalDumper.class;
     }
     
     @Override
diff --git a/shardingsphere-scaling/shardingsphere-scaling-dialect/shardingsphere-scaling-mysql/src/main/java/org/apache/shardingsphere/scaling/mysql/MySQLScalingEntry.java b/shardingsphere-scaling/shardingsphere-scaling-dialect/shardingsphere-scaling-mysql/src/main/java/org/apache/shardingsphere/scaling/mysql/MySQLScalingEntry.java
index 85ca7d3..e7afc30 100644
--- a/shardingsphere-scaling/shardingsphere-scaling-dialect/shardingsphere-scaling-mysql/src/main/java/org/apache/shardingsphere/scaling/mysql/MySQLScalingEntry.java
+++ b/shardingsphere-scaling/shardingsphere-scaling-dialect/shardingsphere-scaling-mysql/src/main/java/org/apache/shardingsphere/scaling/mysql/MySQLScalingEntry.java
@@ -17,19 +17,12 @@
 
 package org.apache.shardingsphere.scaling.mysql;
 
-import org.apache.shardingsphere.scaling.core.common.sqlbuilder.ScalingSQLBuilder;
-import org.apache.shardingsphere.scaling.core.executor.dumper.JDBCDumper;
-import org.apache.shardingsphere.scaling.core.executor.dumper.LogDumper;
-import org.apache.shardingsphere.scaling.core.executor.importer.Importer;
-import org.apache.shardingsphere.scaling.core.job.check.DataConsistencyChecker;
-import org.apache.shardingsphere.scaling.core.job.position.PositionInitializer;
-import org.apache.shardingsphere.scaling.core.job.preparer.checker.DataSourceChecker;
 import org.apache.shardingsphere.scaling.core.spi.ScalingEntry;
 import org.apache.shardingsphere.scaling.mysql.component.MySQLBinlogDumper;
 import org.apache.shardingsphere.scaling.mysql.component.MySQLDataConsistencyChecker;
 import org.apache.shardingsphere.scaling.mysql.component.MySQLDataSourceChecker;
 import org.apache.shardingsphere.scaling.mysql.component.MySQLImporter;
-import org.apache.shardingsphere.scaling.mysql.component.MySQLJdbcDumper;
+import org.apache.shardingsphere.scaling.mysql.component.MySQLInventoryDumper;
 import org.apache.shardingsphere.scaling.mysql.component.MySQLPositionInitializer;
 import org.apache.shardingsphere.scaling.mysql.component.MySQLScalingSQLBuilder;
 
@@ -39,37 +32,37 @@ import org.apache.shardingsphere.scaling.mysql.component.MySQLScalingSQLBuilder;
 public final class MySQLScalingEntry implements ScalingEntry {
     
     @Override
-    public Class<? extends JDBCDumper> getJdbcDumperClass() {
-        return MySQLJdbcDumper.class;
+    public Class<MySQLInventoryDumper> getInventoryDumperClass() {
+        return MySQLInventoryDumper.class;
     }
     
     @Override
-    public Class<? extends LogDumper> getLogDumperClass() {
+    public Class<MySQLBinlogDumper> getIncrementalDumperClass() {
         return MySQLBinlogDumper.class;
     }
     
     @Override
-    public Class<? extends PositionInitializer> getPositionInitializer() {
+    public Class<MySQLPositionInitializer> getPositionInitializer() {
         return MySQLPositionInitializer.class;
     }
     
     @Override
-    public Class<? extends Importer> getImporterClass() {
+    public Class<MySQLImporter> getImporterClass() {
         return MySQLImporter.class;
     }
     
     @Override
-    public Class<? extends DataSourceChecker> getDataSourceCheckerClass() {
+    public Class<MySQLDataSourceChecker> getDataSourceCheckerClass() {
         return MySQLDataSourceChecker.class;
     }
     
     @Override
-    public Class<? extends DataConsistencyChecker> getDataConsistencyCheckerClass() {
+    public Class<MySQLDataConsistencyChecker> getDataConsistencyCheckerClass() {
         return MySQLDataConsistencyChecker.class;
     }
     
     @Override
-    public Class<? extends ScalingSQLBuilder> getSQLBuilderClass() {
+    public Class<MySQLScalingSQLBuilder> getSQLBuilderClass() {
         return MySQLScalingSQLBuilder.class;
     }
     
diff --git a/shardingsphere-scaling/shardingsphere-scaling-dialect/shardingsphere-scaling-mysql/src/main/java/org/apache/shardingsphere/scaling/mysql/binlog/BinlogPosition.java b/shardingsphere-scaling/shardingsphere-scaling-dialect/shardingsphere-scaling-mysql/src/main/java/org/apache/shardingsphere/scaling/mysql/binlog/BinlogPosition.java
index edc4c48..264d293 100644
--- a/shardingsphere-scaling/shardingsphere-scaling-dialect/shardingsphere-scaling-mysql/src/main/java/org/apache/shardingsphere/scaling/mysql/binlog/BinlogPosition.java
+++ b/shardingsphere-scaling/shardingsphere-scaling-dialect/shardingsphere-scaling-mysql/src/main/java/org/apache/shardingsphere/scaling/mysql/binlog/BinlogPosition.java
@@ -21,7 +21,7 @@ import lombok.AllArgsConstructor;
 import lombok.Getter;
 import lombok.RequiredArgsConstructor;
 import lombok.Setter;
-import org.apache.shardingsphere.scaling.core.job.position.Position;
+import org.apache.shardingsphere.scaling.core.job.position.ScalingPosition;
 
 /**
  * Binlog Position.
@@ -30,7 +30,7 @@ import org.apache.shardingsphere.scaling.core.job.position.Position;
 @AllArgsConstructor
 @Setter
 @Getter
-public final class BinlogPosition implements Position<BinlogPosition> {
+public final class BinlogPosition implements ScalingPosition<BinlogPosition> {
     
     private final String filename;
     
diff --git a/shardingsphere-scaling/shardingsphere-scaling-dialect/shardingsphere-scaling-mysql/src/main/java/org/apache/shardingsphere/scaling/mysql/component/MySQLBinlogDumper.java b/shardingsphere-scaling/shardingsphere-scaling-dialect/shardingsphere-scaling-mysql/src/main/java/org/apache/shardingsphere/scaling/mysql/component/MySQLBinlogDumper.java
index 7cccfab..075440f 100644
--- a/shardingsphere-scaling/shardingsphere-scaling-dialect/shardingsphere-scaling-mysql/src/main/java/org/apache/shardingsphere/scaling/mysql/component/MySQLBinlogDumper.java
+++ b/shardingsphere-scaling/shardingsphere-scaling-dialect/shardingsphere-scaling-mysql/src/main/java/org/apache/shardingsphere/scaling/mysql/component/MySQLBinlogDumper.java
@@ -22,22 +22,22 @@ import com.zaxxer.hikari.HikariConfig;
 import lombok.Setter;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.shardingsphere.infra.metadata.schema.model.TableMetaData;
-import org.apache.shardingsphere.scaling.core.config.DumperConfiguration;
-import org.apache.shardingsphere.scaling.core.config.datasource.StandardJDBCDataSourceConfiguration;
+import org.apache.shardingsphere.scaling.core.common.channel.Channel;
 import org.apache.shardingsphere.scaling.core.common.constant.ScalingConstant;
 import org.apache.shardingsphere.scaling.core.common.datasource.DataSourceFactory;
-import org.apache.shardingsphere.scaling.core.executor.AbstractScalingExecutor;
-import org.apache.shardingsphere.scaling.core.common.channel.Channel;
-import org.apache.shardingsphere.scaling.core.executor.dumper.LogDumper;
+import org.apache.shardingsphere.scaling.core.common.datasource.JdbcUri;
+import org.apache.shardingsphere.scaling.core.common.datasource.MetaDataManager;
 import org.apache.shardingsphere.scaling.core.common.record.Column;
 import org.apache.shardingsphere.scaling.core.common.record.DataRecord;
 import org.apache.shardingsphere.scaling.core.common.record.FinishedRecord;
 import org.apache.shardingsphere.scaling.core.common.record.PlaceholderRecord;
 import org.apache.shardingsphere.scaling.core.common.record.Record;
+import org.apache.shardingsphere.scaling.core.config.DumperConfiguration;
+import org.apache.shardingsphere.scaling.core.config.datasource.StandardJDBCDataSourceConfiguration;
+import org.apache.shardingsphere.scaling.core.executor.AbstractScalingExecutor;
+import org.apache.shardingsphere.scaling.core.executor.dumper.IncrementalDumper;
 import org.apache.shardingsphere.scaling.core.job.position.PlaceholderPosition;
-import org.apache.shardingsphere.scaling.core.job.position.Position;
-import org.apache.shardingsphere.scaling.core.common.datasource.JdbcUri;
-import org.apache.shardingsphere.scaling.core.common.datasource.MetaDataManager;
+import org.apache.shardingsphere.scaling.core.job.position.ScalingPosition;
 import org.apache.shardingsphere.scaling.mysql.binlog.BinlogPosition;
 import org.apache.shardingsphere.scaling.mysql.binlog.event.AbstractBinlogEvent;
 import org.apache.shardingsphere.scaling.mysql.binlog.event.AbstractRowsEvent;
@@ -57,7 +57,7 @@ import java.util.Random;
  * MySQL binlog dumper.
  */
 @Slf4j
-public final class MySQLBinlogDumper extends AbstractScalingExecutor implements LogDumper {
+public final class MySQLBinlogDumper extends AbstractScalingExecutor implements IncrementalDumper {
     
     private final BinlogPosition binlogPosition;
     
@@ -70,7 +70,7 @@ public final class MySQLBinlogDumper extends AbstractScalingExecutor implements
     @Setter
     private Channel channel;
     
-    public MySQLBinlogDumper(final DumperConfiguration dumperConfig, final Position<BinlogPosition> binlogPosition) {
+    public MySQLBinlogDumper(final DumperConfiguration dumperConfig, final ScalingPosition<BinlogPosition> binlogPosition) {
         this.binlogPosition = (BinlogPosition) binlogPosition;
         this.dumperConfig = dumperConfig;
         Preconditions.checkArgument(dumperConfig.getDataSourceConfig() instanceof StandardJDBCDataSourceConfiguration, "MySQLBinlogDumper only support StandardJDBCDataSourceConfiguration");
diff --git a/shardingsphere-scaling/shardingsphere-scaling-dialect/shardingsphere-scaling-mysql/src/main/java/org/apache/shardingsphere/scaling/mysql/component/MySQLJdbcDumper.java b/shardingsphere-scaling/shardingsphere-scaling-dialect/shardingsphere-scaling-mysql/src/main/java/org/apache/shardingsphere/scaling/mysql/component/MySQLInventoryDumper.java
similarity index 91%
rename from shardingsphere-scaling/shardingsphere-scaling-dialect/shardingsphere-scaling-mysql/src/main/java/org/apache/shardingsphere/scaling/mysql/component/MySQLJdbcDumper.java
rename to shardingsphere-scaling/shardingsphere-scaling-dialect/shardingsphere-scaling-mysql/src/main/java/org/apache/shardingsphere/scaling/mysql/component/MySQLInventoryDumper.java
index e0f19db..8959052 100644
--- a/shardingsphere-scaling/shardingsphere-scaling-dialect/shardingsphere-scaling-mysql/src/main/java/org/apache/shardingsphere/scaling/mysql/component/MySQLJdbcDumper.java
+++ b/shardingsphere-scaling/shardingsphere-scaling-dialect/shardingsphere-scaling-mysql/src/main/java/org/apache/shardingsphere/scaling/mysql/component/MySQLInventoryDumper.java
@@ -18,9 +18,9 @@
 package org.apache.shardingsphere.scaling.mysql.component;
 
 import com.google.common.collect.ImmutableMap;
-import org.apache.shardingsphere.scaling.core.config.InventoryDumperConfiguration;
 import org.apache.shardingsphere.scaling.core.common.datasource.DataSourceManager;
-import org.apache.shardingsphere.scaling.core.executor.dumper.AbstractJDBCDumper;
+import org.apache.shardingsphere.scaling.core.config.InventoryDumperConfiguration;
+import org.apache.shardingsphere.scaling.core.executor.dumper.AbstractInventoryDumper;
 import org.apache.shardingsphere.scaling.core.util.JDBCUtil;
 
 import java.sql.Connection;
@@ -32,9 +32,9 @@ import java.sql.Types;
 /**
  * MySQL JDBC Dumper.
  */
-public final class MySQLJdbcDumper extends AbstractJDBCDumper {
+public final class MySQLInventoryDumper extends AbstractInventoryDumper {
     
-    public MySQLJdbcDumper(final InventoryDumperConfiguration inventoryDumperConfig, final DataSourceManager dataSourceManager) {
+    public MySQLInventoryDumper(final InventoryDumperConfiguration inventoryDumperConfig, final DataSourceManager dataSourceManager) {
         super(inventoryDumperConfig, dataSourceManager);
         JDBCUtil.appendJDBCParameter(inventoryDumperConfig.getDataSourceConfig(), ImmutableMap.<String, String>builder().put("yearIsDateType", "false").build());
     }
diff --git a/shardingsphere-scaling/shardingsphere-scaling-dialect/shardingsphere-scaling-mysql/src/test/java/org/apache/shardingsphere/scaling/mysql/MySQLScalingEntryTest.java b/shardingsphere-scaling/shardingsphere-scaling-dialect/shardingsphere-scaling-mysql/src/test/java/org/apache/shardingsphere/scaling/mysql/MySQLScalingEntryTest.java
index e3c21a8..3249dcf 100644
--- a/shardingsphere-scaling/shardingsphere-scaling-dialect/shardingsphere-scaling-mysql/src/test/java/org/apache/shardingsphere/scaling/mysql/MySQLScalingEntryTest.java
+++ b/shardingsphere-scaling/shardingsphere-scaling-dialect/shardingsphere-scaling-mysql/src/test/java/org/apache/shardingsphere/scaling/mysql/MySQLScalingEntryTest.java
@@ -23,7 +23,7 @@ import org.apache.shardingsphere.scaling.mysql.component.MySQLBinlogDumper;
 import org.apache.shardingsphere.scaling.mysql.component.MySQLDataConsistencyChecker;
 import org.apache.shardingsphere.scaling.mysql.component.MySQLDataSourceChecker;
 import org.apache.shardingsphere.scaling.mysql.component.MySQLImporter;
-import org.apache.shardingsphere.scaling.mysql.component.MySQLJdbcDumper;
+import org.apache.shardingsphere.scaling.mysql.component.MySQLInventoryDumper;
 import org.apache.shardingsphere.scaling.mysql.component.MySQLPositionInitializer;
 import org.junit.Test;
 
@@ -40,8 +40,8 @@ public final class MySQLScalingEntryTest {
         assertThat(scalingEntry.getPositionInitializer(), equalTo(MySQLPositionInitializer.class));
         assertThat(scalingEntry.getDataSourceCheckerClass(), equalTo(MySQLDataSourceChecker.class));
         assertThat(scalingEntry.getImporterClass(), equalTo(MySQLImporter.class));
-        assertThat(scalingEntry.getJdbcDumperClass(), equalTo(MySQLJdbcDumper.class));
-        assertThat(scalingEntry.getLogDumperClass(), equalTo(MySQLBinlogDumper.class));
+        assertThat(scalingEntry.getInventoryDumperClass(), equalTo(MySQLInventoryDumper.class));
+        assertThat(scalingEntry.getIncrementalDumperClass(), equalTo(MySQLBinlogDumper.class));
         assertThat(scalingEntry.getDataConsistencyCheckerClass(), equalTo(MySQLDataConsistencyChecker.class));
     }
 }
diff --git a/shardingsphere-scaling/shardingsphere-scaling-dialect/shardingsphere-scaling-mysql/src/test/java/org/apache/shardingsphere/scaling/mysql/component/MySQLJdbcDumperTest.java b/shardingsphere-scaling/shardingsphere-scaling-dialect/shardingsphere-scaling-mysql/src/test/java/org/apache/shardingsphere/scaling/mysql/component/MySQLJdbcDumperTest.java
index 0e48cab..ac01360 100644
--- a/shardingsphere-scaling/shardingsphere-scaling-dialect/shardingsphere-scaling-mysql/src/test/java/org/apache/shardingsphere/scaling/mysql/component/MySQLJdbcDumperTest.java
+++ b/shardingsphere-scaling/shardingsphere-scaling-dialect/shardingsphere-scaling-mysql/src/test/java/org/apache/shardingsphere/scaling/mysql/component/MySQLJdbcDumperTest.java
@@ -18,10 +18,10 @@
 package org.apache.shardingsphere.scaling.mysql.component;
 
 import lombok.SneakyThrows;
+import org.apache.shardingsphere.scaling.core.common.datasource.DataSourceManager;
 import org.apache.shardingsphere.scaling.core.config.DumperConfiguration;
 import org.apache.shardingsphere.scaling.core.config.InventoryDumperConfiguration;
 import org.apache.shardingsphere.scaling.core.config.datasource.StandardJDBCDataSourceConfiguration;
-import org.apache.shardingsphere.scaling.core.common.datasource.DataSourceManager;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -46,7 +46,7 @@ public final class MySQLJdbcDumperTest {
     
     private DataSourceManager dataSourceManager;
     
-    private MySQLJdbcDumper mysqlJdbcDumper;
+    private MySQLInventoryDumper mysqlJdbcDumper;
     
     @Mock
     private Connection connection;
@@ -54,7 +54,7 @@ public final class MySQLJdbcDumperTest {
     @Before
     public void setUp() {
         dataSourceManager = new DataSourceManager();
-        mysqlJdbcDumper = new MySQLJdbcDumper(mockInventoryDumperConfiguration(), dataSourceManager);
+        mysqlJdbcDumper = new MySQLInventoryDumper(mockInventoryDumperConfiguration(), dataSourceManager);
     }
     
     private InventoryDumperConfiguration mockInventoryDumperConfiguration() {
diff --git a/shardingsphere-scaling/shardingsphere-scaling-dialect/shardingsphere-scaling-postgresql/src/main/java/org/apache/shardingsphere/scaling/postgresql/PostgreSQLScalingEntry.java b/shardingsphere-scaling/shardingsphere-scaling-dialect/shardingsphere-scaling-postgresql/src/main/java/org/apache/shardingsphere/scaling/postgresql/PostgreSQLScalingEntry.java
index 3b9d862..90b5a4d 100644
--- a/shardingsphere-scaling/shardingsphere-scaling-dialect/shardingsphere-scaling-postgresql/src/main/java/org/apache/shardingsphere/scaling/postgresql/PostgreSQLScalingEntry.java
+++ b/shardingsphere-scaling/shardingsphere-scaling-dialect/shardingsphere-scaling-postgresql/src/main/java/org/apache/shardingsphere/scaling/postgresql/PostgreSQLScalingEntry.java
@@ -17,18 +17,11 @@
 
 package org.apache.shardingsphere.scaling.postgresql;
 
-import org.apache.shardingsphere.scaling.core.executor.dumper.JDBCDumper;
-import org.apache.shardingsphere.scaling.core.executor.dumper.LogDumper;
-import org.apache.shardingsphere.scaling.core.executor.importer.Importer;
-import org.apache.shardingsphere.scaling.core.common.sqlbuilder.ScalingSQLBuilder;
-import org.apache.shardingsphere.scaling.core.job.check.DataConsistencyChecker;
-import org.apache.shardingsphere.scaling.core.job.position.PositionInitializer;
-import org.apache.shardingsphere.scaling.core.job.preparer.checker.DataSourceChecker;
 import org.apache.shardingsphere.scaling.core.spi.ScalingEntry;
 import org.apache.shardingsphere.scaling.postgresql.component.PostgreSQLDataConsistencyChecker;
 import org.apache.shardingsphere.scaling.postgresql.component.PostgreSQLDataSourceChecker;
 import org.apache.shardingsphere.scaling.postgresql.component.PostgreSQLImporter;
-import org.apache.shardingsphere.scaling.postgresql.component.PostgreSQLJdbcDumper;
+import org.apache.shardingsphere.scaling.postgresql.component.PostgreSQLInventoryDumper;
 import org.apache.shardingsphere.scaling.postgresql.component.PostgreSQLPositionInitializer;
 import org.apache.shardingsphere.scaling.postgresql.component.PostgreSQLScalingSQLBuilder;
 import org.apache.shardingsphere.scaling.postgresql.component.PostgreSQLWalDumper;
@@ -39,37 +32,37 @@ import org.apache.shardingsphere.scaling.postgresql.component.PostgreSQLWalDumpe
 public final class PostgreSQLScalingEntry implements ScalingEntry {
     
     @Override
-    public Class<? extends JDBCDumper> getJdbcDumperClass() {
-        return PostgreSQLJdbcDumper.class;
+    public Class<PostgreSQLInventoryDumper> getInventoryDumperClass() {
+        return PostgreSQLInventoryDumper.class;
     }
     
     @Override
-    public Class<? extends LogDumper> getLogDumperClass() {
+    public Class<PostgreSQLWalDumper> getIncrementalDumperClass() {
         return PostgreSQLWalDumper.class;
     }
     
     @Override
-    public Class<? extends PositionInitializer> getPositionInitializer() {
+    public Class<PostgreSQLPositionInitializer> getPositionInitializer() {
         return PostgreSQLPositionInitializer.class;
     }
     
     @Override
-    public Class<? extends Importer> getImporterClass() {
+    public Class<PostgreSQLImporter> getImporterClass() {
         return PostgreSQLImporter.class;
     }
     
     @Override
-    public Class<? extends DataSourceChecker> getDataSourceCheckerClass() {
+    public Class<PostgreSQLDataSourceChecker> getDataSourceCheckerClass() {
         return PostgreSQLDataSourceChecker.class;
     }
     
     @Override
-    public Class<? extends DataConsistencyChecker> getDataConsistencyCheckerClass() {
+    public Class<PostgreSQLDataConsistencyChecker> getDataConsistencyCheckerClass() {
         return PostgreSQLDataConsistencyChecker.class;
     }
     
     @Override
-    public Class<? extends ScalingSQLBuilder> getSQLBuilderClass() {
+    public Class<PostgreSQLScalingSQLBuilder> getSQLBuilderClass() {
         return PostgreSQLScalingSQLBuilder.class;
     }
     
diff --git a/shardingsphere-scaling/shardingsphere-scaling-dialect/shardingsphere-scaling-postgresql/src/main/java/org/apache/shardingsphere/scaling/postgresql/component/PostgreSQLJdbcDumper.java b/shardingsphere-scaling/shardingsphere-scaling-dialect/shardingsphere-scaling-postgresql/src/main/java/org/apache/shardingsphere/scaling/postgresql/component/PostgreSQLInventoryDumper.java
similarity index 87%
rename from shardingsphere-scaling/shardingsphere-scaling-dialect/shardingsphere-scaling-postgresql/src/main/java/org/apache/shardingsphere/scaling/postgresql/component/PostgreSQLJdbcDumper.java
rename to shardingsphere-scaling/shardingsphere-scaling-dialect/shardingsphere-scaling-postgresql/src/main/java/org/apache/shardingsphere/scaling/postgresql/component/PostgreSQLInventoryDumper.java
index 41fc885..b879c5c 100644
--- a/shardingsphere-scaling/shardingsphere-scaling-dialect/shardingsphere-scaling-postgresql/src/main/java/org/apache/shardingsphere/scaling/postgresql/component/PostgreSQLJdbcDumper.java
+++ b/shardingsphere-scaling/shardingsphere-scaling-dialect/shardingsphere-scaling-postgresql/src/main/java/org/apache/shardingsphere/scaling/postgresql/component/PostgreSQLInventoryDumper.java
@@ -17,9 +17,9 @@
 
 package org.apache.shardingsphere.scaling.postgresql.component;
 
-import org.apache.shardingsphere.scaling.core.config.InventoryDumperConfiguration;
 import org.apache.shardingsphere.scaling.core.common.datasource.DataSourceManager;
-import org.apache.shardingsphere.scaling.core.executor.dumper.AbstractJDBCDumper;
+import org.apache.shardingsphere.scaling.core.config.InventoryDumperConfiguration;
+import org.apache.shardingsphere.scaling.core.executor.dumper.AbstractInventoryDumper;
 
 import java.sql.Connection;
 import java.sql.PreparedStatement;
@@ -29,9 +29,9 @@ import java.sql.SQLException;
 /**
  * PostgreSQL JDBC dumper.
  */
-public final class PostgreSQLJdbcDumper extends AbstractJDBCDumper {
+public final class PostgreSQLInventoryDumper extends AbstractInventoryDumper {
     
-    public PostgreSQLJdbcDumper(final InventoryDumperConfiguration inventoryDumperConfig, final DataSourceManager dataSourceManager) {
+    public PostgreSQLInventoryDumper(final InventoryDumperConfiguration inventoryDumperConfig, final DataSourceManager dataSourceManager) {
         super(inventoryDumperConfig, dataSourceManager);
     }
     
diff --git a/shardingsphere-scaling/shardingsphere-scaling-dialect/shardingsphere-scaling-postgresql/src/main/java/org/apache/shardingsphere/scaling/postgresql/component/PostgreSQLWalDumper.java b/shardingsphere-scaling/shardingsphere-scaling-dialect/shardingsphere-scaling-postgresql/src/main/java/org/apache/shardingsphere/scaling/postgresql/component/PostgreSQLWalDumper.java
index c539197..0bf6712 100644
--- a/shardingsphere-scaling/shardingsphere-scaling-dialect/shardingsphere-scaling-postgresql/src/main/java/org/apache/shardingsphere/scaling/postgresql/component/PostgreSQLWalDumper.java
+++ b/shardingsphere-scaling/shardingsphere-scaling-dialect/shardingsphere-scaling-postgresql/src/main/java/org/apache/shardingsphere/scaling/postgresql/component/PostgreSQLWalDumper.java
@@ -18,14 +18,14 @@
 package org.apache.shardingsphere.scaling.postgresql.component;
 
 import lombok.Setter;
+import org.apache.shardingsphere.scaling.core.common.channel.Channel;
+import org.apache.shardingsphere.scaling.core.common.exception.ScalingTaskExecuteException;
+import org.apache.shardingsphere.scaling.core.common.record.Record;
 import org.apache.shardingsphere.scaling.core.config.DumperConfiguration;
 import org.apache.shardingsphere.scaling.core.config.datasource.StandardJDBCDataSourceConfiguration;
-import org.apache.shardingsphere.scaling.core.common.exception.ScalingTaskExecuteException;
 import org.apache.shardingsphere.scaling.core.executor.AbstractScalingExecutor;
-import org.apache.shardingsphere.scaling.core.common.channel.Channel;
-import org.apache.shardingsphere.scaling.core.executor.dumper.LogDumper;
-import org.apache.shardingsphere.scaling.core.common.record.Record;
-import org.apache.shardingsphere.scaling.core.job.position.Position;
+import org.apache.shardingsphere.scaling.core.executor.dumper.IncrementalDumper;
+import org.apache.shardingsphere.scaling.core.job.position.ScalingPosition;
 import org.apache.shardingsphere.scaling.core.util.ThreadUtil;
 import org.apache.shardingsphere.scaling.postgresql.wal.LogicalReplication;
 import org.apache.shardingsphere.scaling.postgresql.wal.WalEventConverter;
@@ -43,7 +43,7 @@ import java.sql.SQLException;
 /**
  * PostgreSQL WAL dumper.
  */
-public final class PostgreSQLWalDumper extends AbstractScalingExecutor implements LogDumper {
+public final class PostgreSQLWalDumper extends AbstractScalingExecutor implements IncrementalDumper {
     
     private final WalPosition walPosition;
     
@@ -56,7 +56,7 @@ public final class PostgreSQLWalDumper extends AbstractScalingExecutor implement
     @Setter
     private Channel channel;
     
-    public PostgreSQLWalDumper(final DumperConfiguration dumperConfig, final Position<WalPosition> position) {
+    public PostgreSQLWalDumper(final DumperConfiguration dumperConfig, final ScalingPosition<WalPosition> position) {
         walPosition = (WalPosition) position;
         if (!StandardJDBCDataSourceConfiguration.class.equals(dumperConfig.getDataSourceConfig().getClass())) {
             throw new UnsupportedOperationException("PostgreSQLWalDumper only support JDBCDataSourceConfiguration");
diff --git a/shardingsphere-scaling/shardingsphere-scaling-dialect/shardingsphere-scaling-postgresql/src/main/java/org/apache/shardingsphere/scaling/postgresql/wal/WalPosition.java b/shardingsphere-scaling/shardingsphere-scaling-dialect/shardingsphere-scaling-postgresql/src/main/java/org/apache/shardingsphere/scaling/postgresql/wal/WalPosition.java
index 07ef76c..b0fbbd0 100644
--- a/shardingsphere-scaling/shardingsphere-scaling-dialect/shardingsphere-scaling-postgresql/src/main/java/org/apache/shardingsphere/scaling/postgresql/wal/WalPosition.java
+++ b/shardingsphere-scaling/shardingsphere-scaling-dialect/shardingsphere-scaling-postgresql/src/main/java/org/apache/shardingsphere/scaling/postgresql/wal/WalPosition.java
@@ -19,7 +19,7 @@ package org.apache.shardingsphere.scaling.postgresql.wal;
 
 import lombok.Getter;
 import lombok.RequiredArgsConstructor;
-import org.apache.shardingsphere.scaling.core.job.position.Position;
+import org.apache.shardingsphere.scaling.core.job.position.ScalingPosition;
 import org.postgresql.replication.LogSequenceNumber;
 
 /**
@@ -27,7 +27,7 @@ import org.postgresql.replication.LogSequenceNumber;
  */
 @RequiredArgsConstructor
 @Getter
-public final class WalPosition implements Position<WalPosition> {
+public final class WalPosition implements ScalingPosition<WalPosition> {
     
     private final LogSequenceNumber logSequenceNumber;
     
diff --git a/shardingsphere-scaling/shardingsphere-scaling-dialect/shardingsphere-scaling-postgresql/src/test/java/org/apache/shardingsphere/scaling/postgresql/PostgreSQLScalingEntryTest.java b/shardingsphere-scaling/shardingsphere-scaling-dialect/shardingsphere-scaling-postgresql/src/test/java/org/apache/shardingsphere/scaling/postgresql/PostgreSQLScalingEntryTest.java
index 6b62b85..62270bc 100644
--- a/shardingsphere-scaling/shardingsphere-scaling-dialect/shardingsphere-scaling-postgresql/src/test/java/org/apache/shardingsphere/scaling/postgresql/PostgreSQLScalingEntryTest.java
+++ b/shardingsphere-scaling/shardingsphere-scaling-dialect/shardingsphere-scaling-postgresql/src/test/java/org/apache/shardingsphere/scaling/postgresql/PostgreSQLScalingEntryTest.java
@@ -22,7 +22,7 @@ import org.apache.shardingsphere.scaling.core.spi.ScalingEntryLoader;
 import org.apache.shardingsphere.scaling.postgresql.component.PostgreSQLDataConsistencyChecker;
 import org.apache.shardingsphere.scaling.postgresql.component.PostgreSQLDataSourceChecker;
 import org.apache.shardingsphere.scaling.postgresql.component.PostgreSQLImporter;
-import org.apache.shardingsphere.scaling.postgresql.component.PostgreSQLJdbcDumper;
+import org.apache.shardingsphere.scaling.postgresql.component.PostgreSQLInventoryDumper;
 import org.apache.shardingsphere.scaling.postgresql.component.PostgreSQLPositionInitializer;
 import org.apache.shardingsphere.scaling.postgresql.component.PostgreSQLWalDumper;
 import org.junit.Test;
@@ -41,7 +41,7 @@ public final class PostgreSQLScalingEntryTest {
         assertThat(scalingEntry.getDataSourceCheckerClass(), equalTo(PostgreSQLDataSourceChecker.class));
         assertThat(scalingEntry.getDataConsistencyCheckerClass(), equalTo(PostgreSQLDataConsistencyChecker.class));
         assertThat(scalingEntry.getImporterClass(), equalTo(PostgreSQLImporter.class));
-        assertThat(scalingEntry.getJdbcDumperClass(), equalTo(PostgreSQLJdbcDumper.class));
-        assertThat(scalingEntry.getLogDumperClass(), equalTo(PostgreSQLWalDumper.class));
+        assertThat(scalingEntry.getInventoryDumperClass(), equalTo(PostgreSQLInventoryDumper.class));
+        assertThat(scalingEntry.getIncrementalDumperClass(), equalTo(PostgreSQLWalDumper.class));
     }
 }
diff --git a/shardingsphere-scaling/shardingsphere-scaling-dialect/shardingsphere-scaling-postgresql/src/test/java/org/apache/shardingsphere/scaling/postgresql/component/PostgreSQLJdbcDumperTest.java b/shardingsphere-scaling/shardingsphere-scaling-dialect/shardingsphere-scaling-postgresql/src/test/java/org/apache/shardingsphere/scaling/postgresql/component/PostgreSQLJdbcDumperTest.java
index c074501..aa6ad5a 100644
--- a/shardingsphere-scaling/shardingsphere-scaling-dialect/shardingsphere-scaling-postgresql/src/test/java/org/apache/shardingsphere/scaling/postgresql/component/PostgreSQLJdbcDumperTest.java
+++ b/shardingsphere-scaling/shardingsphere-scaling-dialect/shardingsphere-scaling-postgresql/src/test/java/org/apache/shardingsphere/scaling/postgresql/component/PostgreSQLJdbcDumperTest.java
@@ -18,10 +18,10 @@
 package org.apache.shardingsphere.scaling.postgresql.component;
 
 import lombok.SneakyThrows;
+import org.apache.shardingsphere.scaling.core.common.datasource.DataSourceManager;
 import org.apache.shardingsphere.scaling.core.config.DumperConfiguration;
 import org.apache.shardingsphere.scaling.core.config.InventoryDumperConfiguration;
 import org.apache.shardingsphere.scaling.core.config.datasource.StandardJDBCDataSourceConfiguration;
-import org.apache.shardingsphere.scaling.core.common.datasource.DataSourceManager;
 import org.junit.Before;
 import org.junit.Test;
 
@@ -38,12 +38,12 @@ public final class PostgreSQLJdbcDumperTest {
     
     private DataSourceManager dataSourceManager;
     
-    private PostgreSQLJdbcDumper jdbcDumper;
+    private PostgreSQLInventoryDumper jdbcDumper;
     
     @Before
     public void setUp() {
         dataSourceManager = new DataSourceManager();
-        jdbcDumper = new PostgreSQLJdbcDumper(mockInventoryDumperConfiguration(), dataSourceManager);
+        jdbcDumper = new PostgreSQLInventoryDumper(mockInventoryDumperConfiguration(), dataSourceManager);
     }
     
     private InventoryDumperConfiguration mockInventoryDumperConfiguration() {