You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by pa...@apache.org on 2021/11/09 13:59:10 UTC

[shardingsphere] branch master updated: Optimize the name of the shadow algorithm. (#13520)

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

panjuan 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 a9578af  Optimize the name of the shadow algorithm. (#13520)
a9578af is described below

commit a9578afdd1e57a2ab7665f48f64d4c5c89629e5f
Author: gin <ja...@163.com>
AuthorDate: Tue Nov 9 21:58:28 2021 +0800

    Optimize the name of the shadow algorithm. (#13520)
---
 .../shadow/api/shadow/ShadowOperationType.java     |  4 +-
 .../shadow/column/PreciseColumnShadowValue.java    |  4 +-
 .../HintShadowAlgorithm.java}                      | 12 ++--
 .../PreciseHintShadowValue.java}                   | 11 +++-
 .../HintShadowAlgorithmUtil.java}                  | 20 +++---
 .../SimpleHintShadowAlgorithm.java}                | 14 ++---
 .../AbstractShadowRuleConfigurationChecker.java    | 10 +--
 .../shadow/condition/ShadowDetermineCondition.java | 10 +--
 .../engine/determiner/ShadowDeterminerFactory.java | 10 +--
 ...ner.java => HintShadowAlgorithmDeterminer.java} | 18 +++---
 .../dml/AbstractShadowDMLStatementRouteEngine.java | 36 +++++------
 .../dml/ShadowDeleteStatementRoutingEngine.java    |  2 +-
 .../dml/ShadowInsertStatementRoutingEngine.java    |  2 +-
 .../dml/ShadowSelectStatementRoutingEngine.java    |  2 +-
 .../dml/ShadowUpdateStatementRoutingEngine.java    |  2 +-
 .../impl/ShadowNonDMLStatementRoutingEngine.java   | 26 ++++----
 .../shardingsphere/shadow/rule/ShadowRule.java     | 26 ++++----
 .../shadow/rule/ShadowTableRule.java               | 10 +--
 ...pache.shardingsphere.shadow.spi.ShadowAlgorithm |  2 +-
 .../column/AbstractColumnShadowAlgorithmTest.java  | 73 ++++++++++++++++++++++
 .../ColumnRegexMatchShadowAlgorithmTest.java       | 36 +++--------
 .../ColumnValueMatchShadowAlgorithmTest.java       | 36 +++--------
 .../SimpleHintShadowAlgorithmTest.java}            | 22 +++----
 .../determiner/ShadowDeterminerFactoryTest.java    |  6 +-
 ...java => HintShadowAlgorithmDeterminerTest.java} | 33 +++++-----
 .../ShadowDeleteStatementRoutingEngineTest.java    |  2 +-
 .../ShadowInsertStatementRoutingEngineTest.java    |  2 +-
 .../ShadowSelectStatementRoutingEngineTest.java    |  2 +-
 .../ShadowUpdateStatementRoutingEngineTest.java    |  2 +-
 .../shardingsphere/shadow/rule/ShadowRuleTest.java | 22 +++----
 .../src/test/resources/yaml/shadow-rule.yaml       |  4 +-
 .../PropertiesShadowSpringBootStarterTest.java     | 16 ++---
 .../YmlShadowDefaultSpringBootStarterTest.java     | 14 ++---
 .../boot/YmlShadowSpringBootStarterTest.java       | 16 ++---
 .../test/resources/application-shadow-default.yml  |  4 +-
 .../application-shadow-properties.properties       | 10 +--
 .../src/test/resources/application-shadow-yml.yml  |  6 +-
 .../ShadowAlgorithmSpringNamespaceTest.java        | 16 ++---
 .../ShadowDefaultAlgorithmSpringNamespaceTest.java | 14 ++---
 .../shadow-algorithm-application-context.xml       |  6 +-
 ...hadow-default-algorithm-application-context.xml |  4 +-
 .../spring/boot/SpringBootStarterTest.java         |  8 +--
 42 files changed, 309 insertions(+), 266 deletions(-)

diff --git a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-api/src/main/java/org/apache/shardingsphere/shadow/api/shadow/ShadowOperationType.java b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-api/src/main/java/org/apache/shardingsphere/shadow/api/shadow/ShadowOperationType.java
index c4ffeac..39c2360 100644
--- a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-api/src/main/java/org/apache/shardingsphere/shadow/api/shadow/ShadowOperationType.java
+++ b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-api/src/main/java/org/apache/shardingsphere/shadow/api/shadow/ShadowOperationType.java
@@ -45,9 +45,9 @@ public enum ShadowOperationType {
     SELECT,
     
     /**
-     * The shadow operation is SQL note match.
+     * The shadow operation is SQL hint match.
      */
-    NOTE_MATCH;
+    HINT_MATCH;
     
     /**
      * Contains operation type.
diff --git a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-api/src/main/java/org/apache/shardingsphere/shadow/api/shadow/column/PreciseColumnShadowValue.java b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-api/src/main/java/org/apache/shardingsphere/shadow/api/shadow/column/PreciseColumnShadowValue.java
index 7a5bfa9..4d094a7 100644
--- a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-api/src/main/java/org/apache/shardingsphere/shadow/api/shadow/column/PreciseColumnShadowValue.java
+++ b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-api/src/main/java/org/apache/shardingsphere/shadow/api/shadow/column/PreciseColumnShadowValue.java
@@ -23,7 +23,9 @@ import org.apache.shardingsphere.shadow.api.shadow.ShadowOperationType;
 import org.apache.shardingsphere.shadow.api.shadow.ShadowValue;
 
 /**
- * Shadow value for precise column.
+ * Precise value of shadow column.
+ *
+ * @param <T> class type of shadow column value
  */
 @RequiredArgsConstructor
 @Getter
diff --git a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-api/src/main/java/org/apache/shardingsphere/shadow/api/shadow/note/NoteShadowAlgorithm.java b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-api/src/main/java/org/apache/shardingsphere/shadow/api/shadow/hint/HintShadowAlgorithm.java
similarity index 79%
rename from shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-api/src/main/java/org/apache/shardingsphere/shadow/api/shadow/note/NoteShadowAlgorithm.java
rename to shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-api/src/main/java/org/apache/shardingsphere/shadow/api/shadow/hint/HintShadowAlgorithm.java
index 2d4ef54..8b11cae 100644
--- a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-api/src/main/java/org/apache/shardingsphere/shadow/api/shadow/note/NoteShadowAlgorithm.java
+++ b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-api/src/main/java/org/apache/shardingsphere/shadow/api/shadow/hint/HintShadowAlgorithm.java
@@ -15,23 +15,25 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.shadow.api.shadow.note;
+package org.apache.shardingsphere.shadow.api.shadow.hint;
 
 import org.apache.shardingsphere.shadow.spi.ShadowAlgorithm;
 
 import java.util.Collection;
 
 /**
- * Note shadow algorithm.
+ * Precise hint of shadow in SQL comment.
+ *
+ * @param <T> class type of hint value
  */
-public interface NoteShadowAlgorithm<T extends Comparable<?>> extends ShadowAlgorithm {
+public interface HintShadowAlgorithm<T extends Comparable<?>> extends ShadowAlgorithm {
     
     /**
      * Is need shadow.
      *
      * @param relatedShadowTables related shadow tables
-     * @param noteShadowValue note shadow value
+     * @param hintShadowValue hint value of shadow
      * @return is need shadow or not
      */
-    boolean isShadow(Collection<String> relatedShadowTables, PreciseNoteShadowValue<T> noteShadowValue);
+    boolean isShadow(Collection<String> relatedShadowTables, PreciseHintShadowValue<T> hintShadowValue);
 }
diff --git a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-api/src/main/java/org/apache/shardingsphere/shadow/api/shadow/note/PreciseNoteShadowValue.java b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-api/src/main/java/org/apache/shardingsphere/shadow/api/shadow/hint/PreciseHintShadowValue.java
similarity index 83%
rename from shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-api/src/main/java/org/apache/shardingsphere/shadow/api/shadow/note/PreciseNoteShadowValue.java
rename to shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-api/src/main/java/org/apache/shardingsphere/shadow/api/shadow/hint/PreciseHintShadowValue.java
index 7237cc3..2f29e42 100644
--- a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-api/src/main/java/org/apache/shardingsphere/shadow/api/shadow/note/PreciseNoteShadowValue.java
+++ b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-api/src/main/java/org/apache/shardingsphere/shadow/api/shadow/hint/PreciseHintShadowValue.java
@@ -15,20 +15,25 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.shadow.api.shadow.note;
+package org.apache.shardingsphere.shadow.api.shadow.hint;
 
 import lombok.Getter;
 import lombok.RequiredArgsConstructor;
 import org.apache.shardingsphere.shadow.api.shadow.ShadowOperationType;
 import org.apache.shardingsphere.shadow.api.shadow.ShadowValue;
 
+/**
+ * Precise hint of shadow in SQL comment.
+ *
+ * @param <T> class type of hint value
+ */
 @RequiredArgsConstructor
 @Getter
-public final class PreciseNoteShadowValue<T extends Comparable<?>> implements ShadowValue {
+public final class PreciseHintShadowValue<T extends Comparable<?>> implements ShadowValue {
     
     private final String logicTableName;
     
     private final ShadowOperationType shadowOperationType;
     
-    private final T sqlNoteValue;
+    private final T value;
 }
diff --git a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/algorithm/shadow/note/NoteShadowAlgorithmUtil.java b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/algorithm/shadow/hint/HintShadowAlgorithmUtil.java
similarity index 84%
rename from shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/algorithm/shadow/note/NoteShadowAlgorithmUtil.java
rename to shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/algorithm/shadow/hint/HintShadowAlgorithmUtil.java
index 1c8c6ae..b95d1b4 100644
--- a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/algorithm/shadow/note/NoteShadowAlgorithmUtil.java
+++ b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/algorithm/shadow/hint/HintShadowAlgorithmUtil.java
@@ -15,16 +15,20 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.shadow.algorithm.shadow.note;
+package org.apache.shardingsphere.shadow.algorithm.shadow.hint;
+
+import lombok.AccessLevel;
+import lombok.NoArgsConstructor;
 
 import java.util.HashMap;
 import java.util.Map;
 import java.util.Optional;
 
 /**
- * Note shadow algorithm util.
+ * Hint shadow algorithm util.
  */
-public final class NoteShadowAlgorithmUtil {
+@NoArgsConstructor(access = AccessLevel.PRIVATE)
+public final class HintShadowAlgorithmUtil {
     
     private static final String SIMPLE_SQL_NOTE_SPACE = ",";
     
@@ -35,13 +39,13 @@ public final class NoteShadowAlgorithmUtil {
     private static final String SIMPLE_SQL_NOTE_SUFFIX = "*/";
     
     /**
-     * Parse simple SQL note.
+     * Parse simple hint in SQL comment.
      *
-     * @param sqlNoteValue SQL note value
-     * @return note map
+     * @param sqlComment SQL comment
+     * @return simple hint map
      */
-    public static Optional<Map<String, String>> parseSimpleSQLNote(final String sqlNoteValue) {
-        String noteValue = sqlNoteValue.trim();
+    public static Optional<Map<String, String>> parseSimpleHint(final String sqlComment) {
+        String noteValue = sqlComment.trim();
         if (noteValue.startsWith(SIMPLE_SQL_NOTE_PREFIX)) {
             noteValue = removePrefix(noteValue);
         }
diff --git a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/algorithm/shadow/note/SimpleSQLNoteShadowAlgorithm.java b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/algorithm/shadow/hint/SimpleHintShadowAlgorithm.java
similarity index 77%
rename from shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/algorithm/shadow/note/SimpleSQLNoteShadowAlgorithm.java
rename to shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/algorithm/shadow/hint/SimpleHintShadowAlgorithm.java
index c301c92..484b6e3 100644
--- a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/algorithm/shadow/note/SimpleSQLNoteShadowAlgorithm.java
+++ b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/algorithm/shadow/hint/SimpleHintShadowAlgorithm.java
@@ -15,14 +15,14 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.shadow.algorithm.shadow.note;
+package org.apache.shardingsphere.shadow.algorithm.shadow.hint;
 
 import com.google.common.base.Preconditions;
 import lombok.Getter;
 import lombok.Setter;
 import org.apache.shardingsphere.shadow.api.shadow.ShadowOperationType;
-import org.apache.shardingsphere.shadow.api.shadow.note.NoteShadowAlgorithm;
-import org.apache.shardingsphere.shadow.api.shadow.note.PreciseNoteShadowValue;
+import org.apache.shardingsphere.shadow.api.shadow.hint.HintShadowAlgorithm;
+import org.apache.shardingsphere.shadow.api.shadow.hint.PreciseHintShadowValue;
 
 import java.util.Collection;
 import java.util.Map;
@@ -35,7 +35,7 @@ import java.util.Properties;
  */
 @Getter
 @Setter
-public final class SimpleSQLNoteShadowAlgorithm implements NoteShadowAlgorithm<String> {
+public final class SimpleHintShadowAlgorithm implements HintShadowAlgorithm<String> {
     
     private Properties props = new Properties();
     
@@ -49,11 +49,11 @@ public final class SimpleSQLNoteShadowAlgorithm implements NoteShadowAlgorithm<S
     }
     
     @Override
-    public boolean isShadow(final Collection<String> shadowTableNames, final PreciseNoteShadowValue<String> noteShadowValue) {
-        if (ShadowOperationType.NOTE_MATCH != noteShadowValue.getShadowOperationType() && !shadowTableNames.contains(noteShadowValue.getLogicTableName())) {
+    public boolean isShadow(final Collection<String> shadowTableNames, final PreciseHintShadowValue<String> noteShadowValue) {
+        if (ShadowOperationType.HINT_MATCH != noteShadowValue.getShadowOperationType() && !shadowTableNames.contains(noteShadowValue.getLogicTableName())) {
             return false;
         }
-        Optional<Map<String, String>> noteOptional = NoteShadowAlgorithmUtil.parseSimpleSQLNote(noteShadowValue.getSqlNoteValue());
+        Optional<Map<String, String>> noteOptional = HintShadowAlgorithmUtil.parseSimpleHint(noteShadowValue.getValue());
         return noteOptional.filter(stringStringMap -> props.entrySet().stream().allMatch(entry -> Objects.equals(entry.getValue(), stringStringMap.get(String.valueOf(entry.getKey()))))).isPresent();
     }
     
diff --git a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/checker/AbstractShadowRuleConfigurationChecker.java b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/checker/AbstractShadowRuleConfigurationChecker.java
index e78bd32..91d09af 100644
--- a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/checker/AbstractShadowRuleConfigurationChecker.java
+++ b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/checker/AbstractShadowRuleConfigurationChecker.java
@@ -23,7 +23,7 @@ import org.apache.shardingsphere.infra.config.algorithm.ShardingSphereAlgorithmC
 import org.apache.shardingsphere.infra.config.checker.RuleConfigurationChecker;
 import org.apache.shardingsphere.shadow.api.config.datasource.ShadowDataSourceConfiguration;
 import org.apache.shardingsphere.shadow.api.config.table.ShadowTableConfiguration;
-import org.apache.shardingsphere.shadow.api.shadow.note.NoteShadowAlgorithm;
+import org.apache.shardingsphere.shadow.api.shadow.hint.HintShadowAlgorithm;
 import org.apache.shardingsphere.shadow.spi.ShadowAlgorithm;
 
 import java.util.Collection;
@@ -78,15 +78,15 @@ public abstract class AbstractShadowRuleConfigurationChecker<T extends RuleConfi
     protected void defaultShadowAlgorithmConfigurationCheck(final String defaultShadowAlgorithmName, final Map<String, ShardingSphereAlgorithmConfiguration> shadowAlgorithmConfigurations) {
         if (null != defaultShadowAlgorithmName) {
             ShardingSphereAlgorithmConfiguration shardingSphereAlgorithmConfiguration = shadowAlgorithmConfigurations.get(defaultShadowAlgorithmName);
-            boolean state = null != shardingSphereAlgorithmConfiguration && "SIMPLE_NOTE".equals(shardingSphereAlgorithmConfiguration.getType());
-            Preconditions.checkState(state, "Default shadow algorithm class should be implement NoteShadowAlgorithm.");
+            boolean state = null != shardingSphereAlgorithmConfiguration && "SIMPLE_HINT".equals(shardingSphereAlgorithmConfiguration.getType());
+            Preconditions.checkState(state, "Default shadow algorithm class should be implement HintShadowAlgorithm.");
         }
     }
     
     protected void defaultShadowAlgorithmCheck(final String defaultShadowAlgorithmName, final Map<String, ShadowAlgorithm> shadowAlgorithms) {
         if (null != defaultShadowAlgorithmName) {
-            boolean isNoteShadowAlgorithmState = shadowAlgorithms.get(defaultShadowAlgorithmName) instanceof NoteShadowAlgorithm;
-            Preconditions.checkState(isNoteShadowAlgorithmState, "Default shadow algorithm class should be implement NoteShadowAlgorithm.");
+            boolean isHintShadowAlgorithmState = shadowAlgorithms.get(defaultShadowAlgorithmName) instanceof HintShadowAlgorithm;
+            Preconditions.checkState(isHintShadowAlgorithmState, "Default shadow algorithm class should be implement HintShadowAlgorithm.");
         }
     }
     
diff --git a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/condition/ShadowDetermineCondition.java b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/condition/ShadowDetermineCondition.java
index 7bd1c95..d6bdf22 100644
--- a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/condition/ShadowDetermineCondition.java
+++ b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/condition/ShadowDetermineCondition.java
@@ -35,7 +35,7 @@ public final class ShadowDetermineCondition {
     
     private final Collection<ShadowColumnCondition> shadowColumnConditions = new LinkedList<>();
     
-    private final Collection<String> sqlNotes = new LinkedList<>();
+    private final Collection<String> sqlComments = new LinkedList<>();
     
     public ShadowDetermineCondition(final String tableName, final ShadowOperationType shadowOperationType) {
         this.tableName = tableName;
@@ -43,13 +43,13 @@ public final class ShadowDetermineCondition {
     }
     
     /**
-     * Initialize SQL notes.
+     * Initialize SQL comments.
      *
-     * @param notes sql notes
+     * @param sqlComments SQL comments
      * @return shadow determine condition
      */
-    public ShadowDetermineCondition initSqlNotes(final Collection<String> notes) {
-        sqlNotes.addAll(notes);
+    public ShadowDetermineCondition initSQLComments(final Collection<String> sqlComments) {
+        this.sqlComments.addAll(sqlComments);
         return this;
     }
     
diff --git a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/route/engine/determiner/ShadowDeterminerFactory.java b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/route/engine/determiner/ShadowDeterminerFactory.java
index 6d8e2c0..17495e6 100644
--- a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/route/engine/determiner/ShadowDeterminerFactory.java
+++ b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/route/engine/determiner/ShadowDeterminerFactory.java
@@ -20,9 +20,9 @@ package org.apache.shardingsphere.shadow.route.engine.determiner;
 import lombok.AccessLevel;
 import lombok.NoArgsConstructor;
 import org.apache.shardingsphere.shadow.api.shadow.column.ColumnShadowAlgorithm;
-import org.apache.shardingsphere.shadow.api.shadow.note.NoteShadowAlgorithm;
+import org.apache.shardingsphere.shadow.api.shadow.hint.HintShadowAlgorithm;
 import org.apache.shardingsphere.shadow.route.engine.determiner.algorithm.ColumnShadowAlgorithmDeterminer;
-import org.apache.shardingsphere.shadow.route.engine.determiner.algorithm.NoteShadowAlgorithmDeterminer;
+import org.apache.shardingsphere.shadow.route.engine.determiner.algorithm.HintShadowAlgorithmDeterminer;
 
 /**
  * Shadow determiner factory.
@@ -33,11 +33,11 @@ public final class ShadowDeterminerFactory {
     /**
      * Create new instance of Shadow algorithm determiner.
      *
-     * @param noteShadowAlgorithm note shadow algorithm
+     * @param hintShadowAlgorithm hint shadow algorithm
      * @return new instance of Shadow algorithm determiner
      */
-    public static ShadowAlgorithmDeterminer newInstance(final NoteShadowAlgorithm<Comparable<?>> noteShadowAlgorithm) {
-        return new NoteShadowAlgorithmDeterminer(noteShadowAlgorithm);
+    public static ShadowAlgorithmDeterminer newInstance(final HintShadowAlgorithm<Comparable<?>> hintShadowAlgorithm) {
+        return new HintShadowAlgorithmDeterminer(hintShadowAlgorithm);
     }
     
     /**
diff --git a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/route/engine/determiner/algorithm/NoteShadowAlgorithmDeterminer.java b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/route/engine/determiner/algorithm/HintShadowAlgorithmDeterminer.java
similarity index 74%
rename from shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/route/engine/determiner/algorithm/NoteShadowAlgorithmDeterminer.java
rename to shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/route/engine/determiner/algorithm/HintShadowAlgorithmDeterminer.java
index 247d9d0..89cb255 100644
--- a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/route/engine/determiner/algorithm/NoteShadowAlgorithmDeterminer.java
+++ b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/route/engine/determiner/algorithm/HintShadowAlgorithmDeterminer.java
@@ -19,8 +19,8 @@ package org.apache.shardingsphere.shadow.route.engine.determiner.algorithm;
 
 import lombok.RequiredArgsConstructor;
 import org.apache.shardingsphere.shadow.api.shadow.ShadowOperationType;
-import org.apache.shardingsphere.shadow.api.shadow.note.NoteShadowAlgorithm;
-import org.apache.shardingsphere.shadow.api.shadow.note.PreciseNoteShadowValue;
+import org.apache.shardingsphere.shadow.api.shadow.hint.HintShadowAlgorithm;
+import org.apache.shardingsphere.shadow.api.shadow.hint.PreciseHintShadowValue;
 import org.apache.shardingsphere.shadow.condition.ShadowDetermineCondition;
 import org.apache.shardingsphere.shadow.route.engine.determiner.ShadowAlgorithmDeterminer;
 import org.apache.shardingsphere.shadow.rule.ShadowRule;
@@ -33,25 +33,25 @@ import java.util.stream.Collectors;
  * Note shadow algorithm determiner.
  */
 @RequiredArgsConstructor
-public final class NoteShadowAlgorithmDeterminer implements ShadowAlgorithmDeterminer {
+public final class HintShadowAlgorithmDeterminer implements ShadowAlgorithmDeterminer {
     
-    private final NoteShadowAlgorithm<Comparable<?>> noteShadowAlgorithm;
+    private final HintShadowAlgorithm<Comparable<?>> hintShadowAlgorithm;
     
     @Override
     public boolean isShadow(final ShadowDetermineCondition shadowDetermineCondition, final ShadowRule shadowRule) {
-        Collection<PreciseNoteShadowValue<Comparable<?>>> noteShadowValues = createNoteShadowValues(shadowDetermineCondition);
-        for (PreciseNoteShadowValue<Comparable<?>> each : noteShadowValues) {
-            if (noteShadowAlgorithm.isShadow(shadowRule.getAllShadowTableNames(), each)) {
+        Collection<PreciseHintShadowValue<Comparable<?>>> noteShadowValues = createNoteShadowValues(shadowDetermineCondition);
+        for (PreciseHintShadowValue<Comparable<?>> each : noteShadowValues) {
+            if (hintShadowAlgorithm.isShadow(shadowRule.getAllShadowTableNames(), each)) {
                 return true;
             }
         }
         return false;
     }
     
-    private Collection<PreciseNoteShadowValue<Comparable<?>>> createNoteShadowValues(final ShadowDetermineCondition shadowDetermineCondition) {
+    private Collection<PreciseHintShadowValue<Comparable<?>>> createNoteShadowValues(final ShadowDetermineCondition shadowDetermineCondition) {
         ShadowOperationType shadowOperationType = shadowDetermineCondition.getShadowOperationType();
         String tableName = shadowDetermineCondition.getTableName();
-        return shadowDetermineCondition.getSqlNotes().stream().<PreciseNoteShadowValue<Comparable<?>>>map(each -> new PreciseNoteShadowValue<>(tableName, shadowOperationType, each))
+        return shadowDetermineCondition.getSqlComments().stream().<PreciseHintShadowValue<Comparable<?>>>map(each -> new PreciseHintShadowValue<>(tableName, shadowOperationType, each))
                 .collect(Collectors.toCollection(LinkedList::new));
     }
 }
diff --git a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/route/engine/dml/AbstractShadowDMLStatementRouteEngine.java b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/route/engine/dml/AbstractShadowDMLStatementRouteEngine.java
index 915e2d4..1fd4c7f 100644
--- a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/route/engine/dml/AbstractShadowDMLStatementRouteEngine.java
+++ b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/route/engine/dml/AbstractShadowDMLStatementRouteEngine.java
@@ -21,7 +21,7 @@ import lombok.Getter;
 import org.apache.shardingsphere.infra.route.context.RouteContext;
 import org.apache.shardingsphere.shadow.api.shadow.ShadowOperationType;
 import org.apache.shardingsphere.shadow.api.shadow.column.ColumnShadowAlgorithm;
-import org.apache.shardingsphere.shadow.api.shadow.note.NoteShadowAlgorithm;
+import org.apache.shardingsphere.shadow.api.shadow.hint.HintShadowAlgorithm;
 import org.apache.shardingsphere.shadow.condition.ShadowColumnCondition;
 import org.apache.shardingsphere.shadow.condition.ShadowDetermineCondition;
 import org.apache.shardingsphere.shadow.route.engine.ShadowRouteEngine;
@@ -76,16 +76,16 @@ public abstract class AbstractShadowDMLStatementRouteEngine implements ShadowRou
     
     @SuppressWarnings("unchecked")
     private boolean isMatchDefaultShadowAlgorithm(final ShadowRule shadowRule) {
-        Optional<Collection<String>> sqlNotes = parseSqlNotes();
-        if (!sqlNotes.isPresent()) {
+        Optional<Collection<String>> sqlComments = parseSQLComments();
+        if (!sqlComments.isPresent()) {
             return false;
         }
         Optional<ShadowAlgorithm> defaultShadowAlgorithm = shadowRule.getDefaultShadowAlgorithm();
         if (defaultShadowAlgorithm.isPresent()) {
             ShadowAlgorithm shadowAlgorithm = defaultShadowAlgorithm.get();
-            if (shadowAlgorithm instanceof NoteShadowAlgorithm<?>) {
-                ShadowDetermineCondition shadowDetermineCondition = new ShadowDetermineCondition("", ShadowOperationType.NOTE_MATCH);
-                return isMatchNoteShadowAlgorithm((NoteShadowAlgorithm<Comparable<?>>) shadowAlgorithm, shadowDetermineCondition.initSqlNotes(sqlNotes.get()), shadowRule);
+            if (shadowAlgorithm instanceof HintShadowAlgorithm<?>) {
+                ShadowDetermineCondition shadowDetermineCondition = new ShadowDetermineCondition("", ShadowOperationType.HINT_MATCH);
+                return isMatchHintShadowAlgorithm((HintShadowAlgorithm<Comparable<?>>) shadowAlgorithm, shadowDetermineCondition.initSQLComments(sqlComments.get()), shadowRule);
             }
         }
         return false;
@@ -93,28 +93,28 @@ public abstract class AbstractShadowDMLStatementRouteEngine implements ShadowRou
     
     private boolean isShadowTable(final String tableName, final ShadowRule shadowRule, final ShadowOperationType shadowOperationType) {
         ShadowDetermineCondition shadowCondition = new ShadowDetermineCondition(tableName, shadowOperationType);
-        if (isContainsShadowInSqlNotes(tableName, shadowRule, shadowCondition)) {
+        if (isContainsShadowInSQLComments(tableName, shadowRule, shadowCondition)) {
             return true;
         }
         return isContainsShadowInColumns(tableName, shadowRule, shadowCondition);
     }
     
-    private boolean isContainsShadowInSqlNotes(final String tableName, final ShadowRule shadowRule, final ShadowDetermineCondition shadowCondition) {
-        return parseSqlNotes().filter(strings -> shadowRule.getRelatedNoteShadowAlgorithms(tableName)
-                .filter(shadowAlgorithms -> isMatchAnyNoteShadowAlgorithms(shadowAlgorithms, shadowCondition.initSqlNotes(strings), shadowRule)).isPresent()).isPresent();
+    private boolean isContainsShadowInSQLComments(final String tableName, final ShadowRule shadowRule, final ShadowDetermineCondition shadowCondition) {
+        return parseSQLComments().filter(SQLComments -> shadowRule.getRelatedHintShadowAlgorithms(tableName)
+                .filter(shadowAlgorithms -> isMatchAnyHintShadowAlgorithms(shadowAlgorithms, shadowCondition.initSQLComments(SQLComments), shadowRule)).isPresent()).isPresent();
     }
     
-    private boolean isMatchAnyNoteShadowAlgorithms(final Collection<NoteShadowAlgorithm<Comparable<?>>> shadowAlgorithms, final ShadowDetermineCondition shadowCondition, final ShadowRule shadowRule) {
-        for (NoteShadowAlgorithm<Comparable<?>> each : shadowAlgorithms) {
-            if (isMatchNoteShadowAlgorithm(each, shadowCondition, shadowRule)) {
+    private boolean isMatchAnyHintShadowAlgorithms(final Collection<HintShadowAlgorithm<Comparable<?>>> shadowAlgorithms, final ShadowDetermineCondition shadowCondition, final ShadowRule shadowRule) {
+        for (HintShadowAlgorithm<Comparable<?>> each : shadowAlgorithms) {
+            if (isMatchHintShadowAlgorithm(each, shadowCondition, shadowRule)) {
                 return true;
             }
         }
         return false;
     }
     
-    private boolean isMatchNoteShadowAlgorithm(final NoteShadowAlgorithm<Comparable<?>> noteShadowAlgorithm, final ShadowDetermineCondition shadowCondition, final ShadowRule shadowRule) {
-        return ShadowDeterminerFactory.newInstance(noteShadowAlgorithm).isShadow(shadowCondition, shadowRule);
+    private boolean isMatchHintShadowAlgorithm(final HintShadowAlgorithm<Comparable<?>> hintShadowAlgorithm, final ShadowDetermineCondition shadowCondition, final ShadowRule shadowRule) {
+        return ShadowDeterminerFactory.newInstance(hintShadowAlgorithm).isShadow(shadowCondition, shadowRule);
     }
     
     private boolean isContainsShadowInColumns(final String tableName, final ShadowRule shadowRule, final ShadowDetermineCondition shadowCondition) {
@@ -144,11 +144,11 @@ public abstract class AbstractShadowDMLStatementRouteEngine implements ShadowRou
     protected abstract Optional<Collection<ShadowColumnCondition>> parseShadowColumnConditions();
     
     /**
-     * Parse sql notes.
+     * Parse SQL Comments.
      *
-     * @return sql notes
+     * @return SQL comments
      */
-    protected abstract Optional<Collection<String>> parseSqlNotes();
+    protected abstract Optional<Collection<String>> parseSQLComments();
     
     /**
      * get shadow operation type.
diff --git a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/route/engine/dml/ShadowDeleteStatementRoutingEngine.java b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/route/engine/dml/ShadowDeleteStatementRoutingEngine.java
index 0c686aa..88ee98d 100644
--- a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/route/engine/dml/ShadowDeleteStatementRoutingEngine.java
+++ b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/route/engine/dml/ShadowDeleteStatementRoutingEngine.java
@@ -73,7 +73,7 @@ public final class ShadowDeleteStatementRoutingEngine extends AbstractShadowDMLS
     }
     
     @Override
-    protected Optional<Collection<String>> parseSqlNotes() {
+    protected Optional<Collection<String>> parseSQLComments() {
         Collection<String> result = new LinkedList<>();
         deleteStatementContext.getSqlStatement().getCommentSegments().forEach(each -> result.add(each.getText()));
         return result.isEmpty() ? Optional.empty() : Optional.of(result);
diff --git a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/route/engine/dml/ShadowInsertStatementRoutingEngine.java b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/route/engine/dml/ShadowInsertStatementRoutingEngine.java
index c1e24e0..f17ad63 100644
--- a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/route/engine/dml/ShadowInsertStatementRoutingEngine.java
+++ b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/route/engine/dml/ShadowInsertStatementRoutingEngine.java
@@ -81,7 +81,7 @@ public final class ShadowInsertStatementRoutingEngine extends AbstractShadowDMLS
     }
     
     @Override
-    protected Optional<Collection<String>> parseSqlNotes() {
+    protected Optional<Collection<String>> parseSQLComments() {
         Collection<String> result = new LinkedList<>();
         insertStatementContext.getSqlStatement().getCommentSegments().forEach(each -> result.add(each.getText()));
         return result.isEmpty() ? Optional.empty() : Optional.of(result);
diff --git a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/route/engine/dml/ShadowSelectStatementRoutingEngine.java b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/route/engine/dml/ShadowSelectStatementRoutingEngine.java
index f7575b4..c2e81ab 100644
--- a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/route/engine/dml/ShadowSelectStatementRoutingEngine.java
+++ b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/route/engine/dml/ShadowSelectStatementRoutingEngine.java
@@ -80,7 +80,7 @@ public final class ShadowSelectStatementRoutingEngine extends AbstractShadowDMLS
     }
     
     @Override
-    protected Optional<Collection<String>> parseSqlNotes() {
+    protected Optional<Collection<String>> parseSQLComments() {
         Collection<String> result = new LinkedList<>();
         selectStatementContext.getSqlStatement().getCommentSegments().forEach(each -> result.add(each.getText()));
         return result.isEmpty() ? Optional.empty() : Optional.of(result);
diff --git a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/route/engine/dml/ShadowUpdateStatementRoutingEngine.java b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/route/engine/dml/ShadowUpdateStatementRoutingEngine.java
index c515e65..e30dc72 100644
--- a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/route/engine/dml/ShadowUpdateStatementRoutingEngine.java
+++ b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/route/engine/dml/ShadowUpdateStatementRoutingEngine.java
@@ -73,7 +73,7 @@ public final class ShadowUpdateStatementRoutingEngine extends AbstractShadowDMLS
     }
     
     @Override
-    protected Optional<Collection<String>> parseSqlNotes() {
+    protected Optional<Collection<String>> parseSQLComments() {
         Collection<String> result = new LinkedList<>();
         updateStatementContext.getSqlStatement().getCommentSegments().forEach(each -> result.add(each.getText()));
         return result.isEmpty() ? Optional.empty() : Optional.of(result);
diff --git a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/route/engine/impl/ShadowNonDMLStatementRoutingEngine.java b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/route/engine/impl/ShadowNonDMLStatementRoutingEngine.java
index c24b636..91f9b3c 100644
--- a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/route/engine/impl/ShadowNonDMLStatementRoutingEngine.java
+++ b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/route/engine/impl/ShadowNonDMLStatementRoutingEngine.java
@@ -21,7 +21,7 @@ import lombok.RequiredArgsConstructor;
 import org.apache.shardingsphere.infra.binder.statement.SQLStatementContext;
 import org.apache.shardingsphere.infra.route.context.RouteContext;
 import org.apache.shardingsphere.shadow.api.shadow.ShadowOperationType;
-import org.apache.shardingsphere.shadow.api.shadow.note.NoteShadowAlgorithm;
+import org.apache.shardingsphere.shadow.api.shadow.hint.HintShadowAlgorithm;
 import org.apache.shardingsphere.shadow.condition.ShadowDetermineCondition;
 import org.apache.shardingsphere.shadow.route.engine.ShadowRouteEngine;
 import org.apache.shardingsphere.shadow.route.engine.determiner.ShadowDeterminerFactory;
@@ -49,33 +49,33 @@ public final class ShadowNonDMLStatementRoutingEngine implements ShadowRouteEngi
     }
     
     private Optional<Map<String, String>> findShadowDataSourceMappings(final ShadowRule shadowRule) {
-        Optional<Collection<String>> sqlNotes = parseSqlNotes();
-        if (!sqlNotes.isPresent()) {
+        Optional<Collection<String>> sqlComments = parseSQLComments();
+        if (!sqlComments.isPresent()) {
             return Optional.empty();
         }
-        Optional<Collection<NoteShadowAlgorithm<Comparable<?>>>> noteShadowAlgorithms = shadowRule.getAllNoteShadowAlgorithms();
+        Optional<Collection<HintShadowAlgorithm<Comparable<?>>>> noteShadowAlgorithms = shadowRule.getAllHintShadowAlgorithms();
         if (!noteShadowAlgorithms.isPresent()) {
             return Optional.empty();
         }
-        if (isMatchAnyNoteShadowAlgorithms(noteShadowAlgorithms.get(), createShadowDetermineCondition(sqlNotes.get()), shadowRule)) {
+        if (isMatchAnyNoteShadowAlgorithms(noteShadowAlgorithms.get(), createShadowDetermineCondition(sqlComments.get()), shadowRule)) {
             return Optional.of(shadowRule.getAllShadowDataSourceMappings());
         }
         return Optional.empty();
     }
     
-    private Optional<Collection<String>> parseSqlNotes() {
+    private Optional<Collection<String>> parseSQLComments() {
         Collection<String> result = ((AbstractSQLStatement) sqlStatementContext.getSqlStatement()).getCommentSegments().stream().map(CommentSegment::getText)
                 .collect(Collectors.toCollection(LinkedList::new));
         return result.isEmpty() ? Optional.empty() : Optional.of(result);
     }
     
-    private ShadowDetermineCondition createShadowDetermineCondition(final Collection<String> sqlNotes) {
-        ShadowDetermineCondition result = new ShadowDetermineCondition("", ShadowOperationType.NOTE_MATCH);
-        return result.initSqlNotes(sqlNotes);
+    private ShadowDetermineCondition createShadowDetermineCondition(final Collection<String> sqlComments) {
+        ShadowDetermineCondition result = new ShadowDetermineCondition("", ShadowOperationType.HINT_MATCH);
+        return result.initSQLComments(sqlComments);
     }
     
-    private boolean isMatchAnyNoteShadowAlgorithms(final Collection<NoteShadowAlgorithm<Comparable<?>>> shadowAlgorithms, final ShadowDetermineCondition shadowCondition, final ShadowRule shadowRule) {
-        for (NoteShadowAlgorithm<Comparable<?>> each : shadowAlgorithms) {
+    private boolean isMatchAnyNoteShadowAlgorithms(final Collection<HintShadowAlgorithm<Comparable<?>>> shadowAlgorithms, final ShadowDetermineCondition shadowCondition, final ShadowRule shadowRule) {
+        for (HintShadowAlgorithm<Comparable<?>> each : shadowAlgorithms) {
             if (isMatchNoteShadowAlgorithm(each, shadowCondition, shadowRule)) {
                 return true;
             }
@@ -83,7 +83,7 @@ public final class ShadowNonDMLStatementRoutingEngine implements ShadowRouteEngi
         return false;
     }
     
-    private boolean isMatchNoteShadowAlgorithm(final NoteShadowAlgorithm<Comparable<?>> noteShadowAlgorithm, final ShadowDetermineCondition shadowCondition, final ShadowRule shadowRule) {
-        return ShadowDeterminerFactory.newInstance(noteShadowAlgorithm).isShadow(shadowCondition, shadowRule);
+    private boolean isMatchNoteShadowAlgorithm(final HintShadowAlgorithm<Comparable<?>> hintShadowAlgorithm, final ShadowDetermineCondition shadowCondition, final ShadowRule shadowRule) {
+        return ShadowDeterminerFactory.newInstance(hintShadowAlgorithm).isShadow(shadowCondition, shadowRule);
     }
 }
diff --git a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/rule/ShadowRule.java b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/rule/ShadowRule.java
index f8bef95..b040d7f 100644
--- a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/rule/ShadowRule.java
+++ b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/rule/ShadowRule.java
@@ -28,7 +28,7 @@ import org.apache.shardingsphere.shadow.api.config.datasource.ShadowDataSourceCo
 import org.apache.shardingsphere.shadow.api.config.table.ShadowTableConfiguration;
 import org.apache.shardingsphere.shadow.api.shadow.ShadowOperationType;
 import org.apache.shardingsphere.shadow.api.shadow.column.ColumnShadowAlgorithm;
-import org.apache.shardingsphere.shadow.api.shadow.note.NoteShadowAlgorithm;
+import org.apache.shardingsphere.shadow.api.shadow.hint.HintShadowAlgorithm;
 import org.apache.shardingsphere.shadow.spi.ShadowAlgorithm;
 import org.apache.shardingsphere.spi.ShardingSphereServiceLoader;
 
@@ -131,30 +131,30 @@ public final class ShadowRule implements SchemaRule, DataSourceContainedRule {
     }
     
     /**
-     * Get related note shadow algorithms.
+     * Get related hint shadow algorithms.
      *
-     * @return related note shadow algorithms
+     * @return related hint shadow algorithms
      */
     @SuppressWarnings("unchecked")
-    public Optional<Collection<NoteShadowAlgorithm<Comparable<?>>>> getAllNoteShadowAlgorithms() {
-        Collection<NoteShadowAlgorithm<Comparable<?>>> result = shadowAlgorithms.values().stream().filter(each -> each instanceof NoteShadowAlgorithm<?>)
-                .map(each -> (NoteShadowAlgorithm<Comparable<?>>) each).collect(Collectors.toCollection(LinkedList::new));
-        if (defaultShadowAlgorithm instanceof NoteShadowAlgorithm<?>) {
-            result.add((NoteShadowAlgorithm<Comparable<?>>) defaultShadowAlgorithm);
+    public Optional<Collection<HintShadowAlgorithm<Comparable<?>>>> getAllHintShadowAlgorithms() {
+        Collection<HintShadowAlgorithm<Comparable<?>>> result = shadowAlgorithms.values().stream().filter(each -> each instanceof HintShadowAlgorithm<?>)
+                .map(each -> (HintShadowAlgorithm<Comparable<?>>) each).collect(Collectors.toCollection(LinkedList::new));
+        if (defaultShadowAlgorithm instanceof HintShadowAlgorithm<?>) {
+            result.add((HintShadowAlgorithm<Comparable<?>>) defaultShadowAlgorithm);
         }
         return result.isEmpty() ? Optional.empty() : Optional.of(result);
     }
     
     /**
-     * Get related note shadow algorithms by table name.
+     * Get related hint shadow algorithms by table name.
      *
      * @param tableName table name
-     * @return note shadow algorithms
+     * @return hint shadow algorithms
      */
     @SuppressWarnings("unchecked")
-    public Optional<Collection<NoteShadowAlgorithm<Comparable<?>>>> getRelatedNoteShadowAlgorithms(final String tableName) {
-        Collection<NoteShadowAlgorithm<Comparable<?>>> result = shadowTableRules.get(tableName).getNoteShadowAlgorithmNames().stream().map(shadowAlgorithms::get)
-                .filter(shadowAlgorithm -> !Objects.isNull(shadowAlgorithm)).map(shadowAlgorithm -> (NoteShadowAlgorithm<Comparable<?>>) shadowAlgorithm)
+    public Optional<Collection<HintShadowAlgorithm<Comparable<?>>>> getRelatedHintShadowAlgorithms(final String tableName) {
+        Collection<HintShadowAlgorithm<Comparable<?>>> result = shadowTableRules.get(tableName).getHintShadowAlgorithmNames().stream().map(shadowAlgorithms::get)
+                .filter(shadowAlgorithm -> !Objects.isNull(shadowAlgorithm)).map(shadowAlgorithm -> (HintShadowAlgorithm<Comparable<?>>) shadowAlgorithm)
                 .collect(Collectors.toCollection(LinkedList::new));
         return result.isEmpty() ? Optional.of(result) : Optional.of(result);
     }
diff --git a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/rule/ShadowTableRule.java b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/rule/ShadowTableRule.java
index eea3e5f..715fb2c 100644
--- a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/rule/ShadowTableRule.java
+++ b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/java/org/apache/shardingsphere/shadow/rule/ShadowTableRule.java
@@ -21,7 +21,7 @@ import com.google.common.base.Preconditions;
 import lombok.Getter;
 import org.apache.shardingsphere.shadow.api.shadow.ShadowOperationType;
 import org.apache.shardingsphere.shadow.api.shadow.column.ColumnShadowAlgorithm;
-import org.apache.shardingsphere.shadow.api.shadow.note.NoteShadowAlgorithm;
+import org.apache.shardingsphere.shadow.api.shadow.hint.HintShadowAlgorithm;
 import org.apache.shardingsphere.shadow.spi.ShadowAlgorithm;
 
 import java.util.Collection;
@@ -41,19 +41,19 @@ public final class ShadowTableRule {
     
     private final Collection<String> shadowDataSources;
     
-    private final Collection<String> noteShadowAlgorithmNames;
+    private final Collection<String> hintShadowAlgorithmNames;
     
     private final Map<ShadowOperationType, Collection<String>> columnShadowAlgorithmNames;
     
     public ShadowTableRule(final String tableName, final Collection<String> shadowDataSources, final Collection<String> shadowAlgorithmNames, final Map<String, ShadowAlgorithm> shadowAlgorithms) {
         this.tableName = tableName;
         this.shadowDataSources = shadowDataSources;
-        this.noteShadowAlgorithmNames = initNoteShadowAlgorithmNames(shadowAlgorithmNames, shadowAlgorithms);
+        this.hintShadowAlgorithmNames = initHintShadowAlgorithmNames(shadowAlgorithmNames, shadowAlgorithms);
         this.columnShadowAlgorithmNames = initColumnShadowAlgorithmNames(shadowAlgorithmNames, shadowAlgorithms);
     }
     
-    private Collection<String> initNoteShadowAlgorithmNames(final Collection<String> shadowAlgorithmNames, final Map<String, ShadowAlgorithm> shadowAlgorithms) {
-        return shadowAlgorithmNames.stream().filter(each -> shadowAlgorithms.get(each) instanceof NoteShadowAlgorithm).collect(Collectors.toCollection(LinkedList::new));
+    private Collection<String> initHintShadowAlgorithmNames(final Collection<String> shadowAlgorithmNames, final Map<String, ShadowAlgorithm> shadowAlgorithms) {
+        return shadowAlgorithmNames.stream().filter(each -> shadowAlgorithms.get(each) instanceof HintShadowAlgorithm).collect(Collectors.toCollection(LinkedList::new));
     }
     
     private Map<ShadowOperationType, Collection<String>> initColumnShadowAlgorithmNames(final Collection<String> shadowAlgorithmNames, final Map<String, ShadowAlgorithm> shadowAlgorithms) {
diff --git a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/resources/META-INF/services/org.apache.shardingsphere.shadow.spi.ShadowAlgorithm b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/resources/META-INF/services/org.apache.shardingsphere.shadow.spi.ShadowAlgorithm
index 7d6f0d7..3ceaf70 100644
--- a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/resources/META-INF/services/org.apache.shardingsphere.shadow.spi.ShadowAlgorithm
+++ b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/main/resources/META-INF/services/org.apache.shardingsphere.shadow.spi.ShadowAlgorithm
@@ -15,6 +15,6 @@
 # limitations under the License.
 #
 
-org.apache.shardingsphere.shadow.algorithm.shadow.note.SimpleSQLNoteShadowAlgorithm
+org.apache.shardingsphere.shadow.algorithm.shadow.hint.SimpleHintShadowAlgorithm
 org.apache.shardingsphere.shadow.algorithm.shadow.column.ColumnRegexMatchShadowAlgorithm
 org.apache.shardingsphere.shadow.algorithm.shadow.column.ColumnValueMatchShadowAlgorithm
diff --git a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/test/java/org/apache/shardingsphere/shadow/algorithm/shadow/column/AbstractColumnShadowAlgorithmTest.java b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/test/java/org/apache/shardingsphere/shadow/algorithm/shadow/column/AbstractColumnShadowAlgorithmTest.java
new file mode 100644
index 0000000..c1ab938
--- /dev/null
+++ b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/test/java/org/apache/shardingsphere/shadow/algorithm/shadow/column/AbstractColumnShadowAlgorithmTest.java
@@ -0,0 +1,73 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.shardingsphere.shadow.algorithm.shadow.column;
+
+import org.apache.shardingsphere.shadow.api.shadow.ShadowOperationType;
+import org.apache.shardingsphere.shadow.api.shadow.column.PreciseColumnShadowValue;
+
+import java.math.BigDecimal;
+import java.math.BigInteger;
+import java.util.Collection;
+import java.util.LinkedList;
+
+public abstract class AbstractColumnShadowAlgorithmTest {
+    
+    protected static final String SHADOW_TABLE = "t_user";
+    
+    protected static final String SHADOW_COLUMN = "shadow";
+    
+    protected Collection<PreciseColumnShadowValue<Comparable<?>>> createPreciseColumnShadowValuesTrueCase() {
+        Collection<PreciseColumnShadowValue<Comparable<?>>> result = new LinkedList<>();
+        result.add(new PreciseColumnShadowValue<>(SHADOW_TABLE, ShadowOperationType.INSERT, SHADOW_COLUMN, 1));
+        result.add(new PreciseColumnShadowValue<>(SHADOW_TABLE, ShadowOperationType.INSERT, SHADOW_COLUMN, 1L));
+        result.add(new PreciseColumnShadowValue<>(SHADOW_TABLE, ShadowOperationType.INSERT, SHADOW_COLUMN, "1"));
+        result.add(new PreciseColumnShadowValue<>(SHADOW_TABLE, ShadowOperationType.INSERT, SHADOW_COLUMN, '1'));
+        result.add(new PreciseColumnShadowValue<>(SHADOW_TABLE, ShadowOperationType.INSERT, SHADOW_COLUMN, new BigInteger("1")));
+        result.add(new PreciseColumnShadowValue<>(SHADOW_TABLE, ShadowOperationType.INSERT, SHADOW_COLUMN, new BigDecimal("1")));
+        return result;
+    }
+    
+    protected Collection<PreciseColumnShadowValue<Comparable<?>>> createPreciseColumnShadowValuesFalseCase() {
+        Collection<PreciseColumnShadowValue<Comparable<?>>> result = new LinkedList<>();
+        result.add(new PreciseColumnShadowValue<>(SHADOW_TABLE, ShadowOperationType.INSERT, SHADOW_COLUMN, 2));
+        result.add(new PreciseColumnShadowValue<>(SHADOW_TABLE, ShadowOperationType.INSERT, SHADOW_COLUMN, 2L));
+        result.add(new PreciseColumnShadowValue<>(SHADOW_TABLE, ShadowOperationType.INSERT, SHADOW_COLUMN, "2"));
+        result.add(new PreciseColumnShadowValue<>(SHADOW_TABLE, ShadowOperationType.INSERT, SHADOW_COLUMN, '2'));
+        result.add(new PreciseColumnShadowValue<>(SHADOW_TABLE, ShadowOperationType.INSERT, SHADOW_COLUMN, new BigInteger("2")));
+        result.add(new PreciseColumnShadowValue<>(SHADOW_TABLE, ShadowOperationType.INSERT, SHADOW_COLUMN, new BigDecimal("2")));
+        result.add(new PreciseColumnShadowValue<>(SHADOW_TABLE, ShadowOperationType.UPDATE, SHADOW_COLUMN, 1));
+        result.add(new PreciseColumnShadowValue<>(SHADOW_TABLE, ShadowOperationType.UPDATE, SHADOW_COLUMN, 1L));
+        result.add(new PreciseColumnShadowValue<>(SHADOW_TABLE, ShadowOperationType.UPDATE, SHADOW_COLUMN, "1"));
+        result.add(new PreciseColumnShadowValue<>(SHADOW_TABLE, ShadowOperationType.UPDATE, SHADOW_COLUMN, '1'));
+        result.add(new PreciseColumnShadowValue<>(SHADOW_TABLE, ShadowOperationType.UPDATE, SHADOW_COLUMN, new BigInteger("2")));
+        result.add(new PreciseColumnShadowValue<>(SHADOW_TABLE, ShadowOperationType.UPDATE, SHADOW_COLUMN, new BigDecimal("1")));
+        result.add(new PreciseColumnShadowValue<>("t_order", ShadowOperationType.INSERT, SHADOW_COLUMN, 1));
+        result.add(new PreciseColumnShadowValue<>("t_order", ShadowOperationType.INSERT, SHADOW_COLUMN, 1L));
+        result.add(new PreciseColumnShadowValue<>("t_order", ShadowOperationType.INSERT, SHADOW_COLUMN, "1"));
+        result.add(new PreciseColumnShadowValue<>("t_order", ShadowOperationType.INSERT, SHADOW_COLUMN, '1'));
+        result.add(new PreciseColumnShadowValue<>("t_order", ShadowOperationType.INSERT, SHADOW_COLUMN, new BigInteger("1")));
+        result.add(new PreciseColumnShadowValue<>("t_order", ShadowOperationType.INSERT, SHADOW_COLUMN, new BigDecimal("1")));
+        return result;
+    }
+    
+    protected Collection<String> createTableNames() {
+        Collection<String> shadowTableNames = new LinkedList<>();
+        shadowTableNames.add(SHADOW_TABLE);
+        return shadowTableNames;
+    }
+}
diff --git a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/test/java/org/apache/shardingsphere/shadow/algorithm/shadow/column/ColumnRegexMatchShadowAlgorithmTest.java b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/test/java/org/apache/shardingsphere/shadow/algorithm/shadow/column/ColumnRegexMatchShadowAlgorithmTest.java
index 6a6d80a..62c2338 100644
--- a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/test/java/org/apache/shardingsphere/shadow/algorithm/shadow/column/ColumnRegexMatchShadowAlgorithmTest.java
+++ b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/test/java/org/apache/shardingsphere/shadow/algorithm/shadow/column/ColumnRegexMatchShadowAlgorithmTest.java
@@ -17,35 +17,27 @@
 
 package org.apache.shardingsphere.shadow.algorithm.shadow.column;
 
-import org.apache.shardingsphere.shadow.api.shadow.ShadowOperationType;
-import org.apache.shardingsphere.shadow.api.shadow.column.PreciseColumnShadowValue;
 import org.junit.Before;
 import org.junit.Test;
 
-import java.util.Collection;
-import java.util.LinkedList;
 import java.util.Properties;
 
 import static org.hamcrest.CoreMatchers.is;
 import static org.junit.Assert.assertThat;
 
-public final class ColumnRegexMatchShadowAlgorithmTest {
+public final class ColumnRegexMatchShadowAlgorithmTest extends AbstractColumnShadowAlgorithmTest {
     
     private ColumnRegexMatchShadowAlgorithm shadowAlgorithm;
     
     @Before
     public void init() {
         shadowAlgorithm = new ColumnRegexMatchShadowAlgorithm();
-        shadowAlgorithm.setProps(createProperties());
-        shadowAlgorithm.init();
-    }
-    
-    private Properties createProperties() {
         Properties properties = new Properties();
-        properties.setProperty("column", "shadow");
+        properties.setProperty("column", SHADOW_COLUMN);
         properties.setProperty("operation", "insert");
         properties.setProperty("regex", "[1]");
-        return properties;
+        shadowAlgorithm.setProps(properties);
+        shadowAlgorithm.init();
     }
     
     @Test
@@ -55,25 +47,15 @@ public final class ColumnRegexMatchShadowAlgorithmTest {
     }
     
     private void assertFalseCase() {
-        assertThat(shadowAlgorithm.isShadow(createTableNames(), createPreciseColumnShadowValue("auto", ShadowOperationType.INSERT, "shadow", "1")), is(false));
-        assertThat(shadowAlgorithm.isShadow(createTableNames(), createPreciseColumnShadowValue("t_user", ShadowOperationType.UPDATE, "shadow", "1")), is(false));
-        assertThat(shadowAlgorithm.isShadow(createTableNames(), createPreciseColumnShadowValue("t_user", ShadowOperationType.UPDATE, "auto", "1")), is(false));
-        assertThat(shadowAlgorithm.isShadow(createTableNames(), createPreciseColumnShadowValue("t_user", ShadowOperationType.UPDATE, "shadow", "2")), is(false));
+        createPreciseColumnShadowValuesFalseCase().forEach(each -> assertThat(shadowAlgorithm.isShadow(createTableNames(), each), is(false)));
     }
     
     private void assertTrueCase() {
-        assertThat(shadowAlgorithm.isShadow(createTableNames(), createPreciseColumnShadowValue("t_user", ShadowOperationType.INSERT, "shadow", "1")), is(true));
-        assertThat(shadowAlgorithm.isShadow(createTableNames(), createPreciseColumnShadowValue("t_order", ShadowOperationType.INSERT, "shadow", "1")), is(true));
+        createPreciseColumnShadowValuesTrueCase().forEach(each -> assertThat(shadowAlgorithm.isShadow(createTableNames(), each), is(true)));
     }
     
-    private PreciseColumnShadowValue<Comparable<?>> createPreciseColumnShadowValue(final String tableName, final ShadowOperationType operationType, final String columnName, final String value) {
-        return new PreciseColumnShadowValue<>(tableName, operationType, columnName, value);
-    }
-    
-    private Collection<String> createTableNames() {
-        Collection<String> shadowTableNames = new LinkedList<>();
-        shadowTableNames.add("t_user");
-        shadowTableNames.add("t_order");
-        return shadowTableNames;
+    @Test
+    public void assertGetType() {
+        assertThat(shadowAlgorithm.getType(), is("REGEX_MATCH"));
     }
 }
diff --git a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/test/java/org/apache/shardingsphere/shadow/algorithm/shadow/column/ColumnValueMatchShadowAlgorithmTest.java b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/test/java/org/apache/shardingsphere/shadow/algorithm/shadow/column/ColumnValueMatchShadowAlgorithmTest.java
index 6239cd7..2e19a52 100644
--- a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/test/java/org/apache/shardingsphere/shadow/algorithm/shadow/column/ColumnValueMatchShadowAlgorithmTest.java
+++ b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/test/java/org/apache/shardingsphere/shadow/algorithm/shadow/column/ColumnValueMatchShadowAlgorithmTest.java
@@ -17,35 +17,27 @@
 
 package org.apache.shardingsphere.shadow.algorithm.shadow.column;
 
-import org.apache.shardingsphere.shadow.api.shadow.ShadowOperationType;
-import org.apache.shardingsphere.shadow.api.shadow.column.PreciseColumnShadowValue;
 import org.junit.Before;
 import org.junit.Test;
 
-import java.util.Collection;
-import java.util.LinkedList;
 import java.util.Properties;
 
 import static org.hamcrest.CoreMatchers.is;
 import static org.junit.Assert.assertThat;
 
-public final class ColumnValueMatchShadowAlgorithmTest {
+public final class ColumnValueMatchShadowAlgorithmTest extends AbstractColumnShadowAlgorithmTest {
     
     private ColumnValueMatchShadowAlgorithm shadowAlgorithm;
     
     @Before
     public void init() {
         shadowAlgorithm = new ColumnValueMatchShadowAlgorithm();
-        shadowAlgorithm.setProps(createProperties());
-        shadowAlgorithm.init();
-    }
-    
-    private Properties createProperties() {
         Properties properties = new Properties();
-        properties.setProperty("column", "shadow");
+        properties.setProperty("column", SHADOW_COLUMN);
         properties.setProperty("operation", "insert");
         properties.setProperty("value", "1");
-        return properties;
+        shadowAlgorithm.setProps(properties);
+        shadowAlgorithm.init();
     }
     
     @Test
@@ -55,25 +47,15 @@ public final class ColumnValueMatchShadowAlgorithmTest {
     }
     
     private void assertTrueCase() {
-        assertThat(shadowAlgorithm.isShadow(createTableNames(), createPreciseColumnShadowValue("t_user", ShadowOperationType.INSERT, "shadow", "1")), is(true));
-        assertThat(shadowAlgorithm.isShadow(createTableNames(), createPreciseColumnShadowValue("t_order", ShadowOperationType.INSERT, "shadow", "1")), is(true));
+        createPreciseColumnShadowValuesTrueCase().forEach(each -> assertThat(shadowAlgorithm.isShadow(createTableNames(), each), is(true)));
     }
     
     private void assertFalseCase() {
-        assertThat(shadowAlgorithm.isShadow(createTableNames(), createPreciseColumnShadowValue("auto", ShadowOperationType.INSERT, "shadow", "1")), is(false));
-        assertThat(shadowAlgorithm.isShadow(createTableNames(), createPreciseColumnShadowValue("t_user", ShadowOperationType.UPDATE, "shadow", "1")), is(false));
-        assertThat(shadowAlgorithm.isShadow(createTableNames(), createPreciseColumnShadowValue("t_user", ShadowOperationType.UPDATE, "auto", "1")), is(false));
-        assertThat(shadowAlgorithm.isShadow(createTableNames(), createPreciseColumnShadowValue("t_user", ShadowOperationType.UPDATE, "shadow", "2")), is(false));
+        createPreciseColumnShadowValuesFalseCase().forEach(each -> assertThat(shadowAlgorithm.isShadow(createTableNames(), each), is(false)));
     }
     
-    private PreciseColumnShadowValue<Comparable<?>> createPreciseColumnShadowValue(final String tableName, final ShadowOperationType operationType, final String columnName, final String value) {
-        return new PreciseColumnShadowValue<>(tableName, operationType, columnName, value);
-    }
-    
-    private Collection<String> createTableNames() {
-        Collection<String> shadowTableNames = new LinkedList<>();
-        shadowTableNames.add("t_user");
-        shadowTableNames.add("t_order");
-        return shadowTableNames;
+    @Test
+    public void assertGetType() {
+        assertThat(shadowAlgorithm.getType(), is("VALUE_MATCH"));
     }
 }
diff --git a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/test/java/org/apache/shardingsphere/shadow/algorithm/shadow/note/SimpleSQLNoteShadowAlgorithmTest.java b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/test/java/org/apache/shardingsphere/shadow/algorithm/shadow/hint/SimpleHintShadowAlgorithmTest.java
similarity index 81%
rename from shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/test/java/org/apache/shardingsphere/shadow/algorithm/shadow/note/SimpleSQLNoteShadowAlgorithmTest.java
rename to shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/test/java/org/apache/shardingsphere/shadow/algorithm/shadow/hint/SimpleHintShadowAlgorithmTest.java
index bf5d922..5bfc3ac 100644
--- a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/test/java/org/apache/shardingsphere/shadow/algorithm/shadow/note/SimpleSQLNoteShadowAlgorithmTest.java
+++ b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/test/java/org/apache/shardingsphere/shadow/algorithm/shadow/hint/SimpleHintShadowAlgorithmTest.java
@@ -15,10 +15,10 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.shadow.algorithm.shadow.note;
+package org.apache.shardingsphere.shadow.algorithm.shadow.hint;
 
 import org.apache.shardingsphere.shadow.api.shadow.ShadowOperationType;
-import org.apache.shardingsphere.shadow.api.shadow.note.PreciseNoteShadowValue;
+import org.apache.shardingsphere.shadow.api.shadow.hint.PreciseHintShadowValue;
 import org.junit.Before;
 import org.junit.Test;
 
@@ -29,21 +29,17 @@ import java.util.Properties;
 import static org.hamcrest.CoreMatchers.is;
 import static org.junit.Assert.assertThat;
 
-public final class SimpleSQLNoteShadowAlgorithmTest {
+public final class SimpleHintShadowAlgorithmTest {
     
-    private SimpleSQLNoteShadowAlgorithm shadowAlgorithm;
+    private SimpleHintShadowAlgorithm shadowAlgorithm;
     
     @Before
     public void init() {
-        shadowAlgorithm = new SimpleSQLNoteShadowAlgorithm();
-        shadowAlgorithm.setProps(createProperties());
-        shadowAlgorithm.init();
-    }
-    
-    private Properties createProperties() {
+        shadowAlgorithm = new SimpleHintShadowAlgorithm();
         Properties properties = new Properties();
         properties.setProperty("shadow", "true");
-        return properties;
+        shadowAlgorithm.setProps(properties);
+        shadowAlgorithm.init();
     }
     
     @Test
@@ -66,8 +62,8 @@ public final class SimpleSQLNoteShadowAlgorithmTest {
         assertThat(shadowAlgorithm.isShadow(createShadowTableNames(), createNoteShadowValue(" shadow:true, aaa:bbb ")), is(true));
     }
     
-    private PreciseNoteShadowValue<String> createNoteShadowValue(final String sqlNote) {
-        return new PreciseNoteShadowValue<>("t_user", ShadowOperationType.NOTE_MATCH, sqlNote);
+    private PreciseHintShadowValue<String> createNoteShadowValue(final String sqlNote) {
+        return new PreciseHintShadowValue<>("t_user", ShadowOperationType.HINT_MATCH, sqlNote);
     }
     
     private Collection<String> createShadowTableNames() {
diff --git a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/test/java/org/apache/shardingsphere/shadow/route/engine/determiner/ShadowDeterminerFactoryTest.java b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/test/java/org/apache/shardingsphere/shadow/route/engine/determiner/ShadowDeterminerFactoryTest.java
index ed2ceea..660c39e 100644
--- a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/test/java/org/apache/shardingsphere/shadow/route/engine/determiner/ShadowDeterminerFactoryTest.java
+++ b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/test/java/org/apache/shardingsphere/shadow/route/engine/determiner/ShadowDeterminerFactoryTest.java
@@ -18,9 +18,9 @@
 package org.apache.shardingsphere.shadow.route.engine.determiner;
 
 import org.apache.shardingsphere.shadow.api.shadow.column.ColumnShadowAlgorithm;
-import org.apache.shardingsphere.shadow.api.shadow.note.NoteShadowAlgorithm;
+import org.apache.shardingsphere.shadow.api.shadow.hint.HintShadowAlgorithm;
 import org.apache.shardingsphere.shadow.route.engine.determiner.algorithm.ColumnShadowAlgorithmDeterminer;
-import org.apache.shardingsphere.shadow.route.engine.determiner.algorithm.NoteShadowAlgorithmDeterminer;
+import org.apache.shardingsphere.shadow.route.engine.determiner.algorithm.HintShadowAlgorithmDeterminer;
 import org.junit.Test;
 
 import static org.hamcrest.CoreMatchers.is;
@@ -31,7 +31,7 @@ public final class ShadowDeterminerFactoryTest {
     
     @Test
     public void assertSuccessNewInstance() {
-        assertThat(ShadowDeterminerFactory.newInstance(mock(NoteShadowAlgorithm.class)) instanceof NoteShadowAlgorithmDeterminer, is(true));
+        assertThat(ShadowDeterminerFactory.newInstance(mock(HintShadowAlgorithm.class)) instanceof HintShadowAlgorithmDeterminer, is(true));
         assertThat(ShadowDeterminerFactory.newInstance(mock(ColumnShadowAlgorithm.class)) instanceof ColumnShadowAlgorithmDeterminer, is(true));
     }
 }
diff --git a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/test/java/org/apache/shardingsphere/shadow/route/engine/determiner/algorithm/NoteShadowAlgorithmDeterminerTest.java b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/test/java/org/apache/shardingsphere/shadow/route/engine/determiner/algorithm/HintShadowAlgorithmDeterminerTest.java
similarity index 83%
rename from shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/test/java/org/apache/shardingsphere/shadow/route/engine/determiner/algorithm/NoteShadowAlgorithmDeterminerTest.java
rename to shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/test/java/org/apache/shardingsphere/shadow/route/engine/determiner/algorithm/HintShadowAlgorithmDeterminerTest.java
index 8d6839d..75b9503 100644
--- a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/test/java/org/apache/shardingsphere/shadow/route/engine/determiner/algorithm/NoteShadowAlgorithmDeterminerTest.java
+++ b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/test/java/org/apache/shardingsphere/shadow/route/engine/determiner/algorithm/HintShadowAlgorithmDeterminerTest.java
@@ -18,11 +18,11 @@
 package org.apache.shardingsphere.shadow.route.engine.determiner.algorithm;
 
 import org.apache.shardingsphere.shadow.algorithm.config.AlgorithmProvidedShadowRuleConfiguration;
-import org.apache.shardingsphere.shadow.algorithm.shadow.note.SimpleSQLNoteShadowAlgorithm;
+import org.apache.shardingsphere.shadow.algorithm.shadow.hint.SimpleHintShadowAlgorithm;
 import org.apache.shardingsphere.shadow.api.config.datasource.ShadowDataSourceConfiguration;
 import org.apache.shardingsphere.shadow.api.config.table.ShadowTableConfiguration;
 import org.apache.shardingsphere.shadow.api.shadow.ShadowOperationType;
-import org.apache.shardingsphere.shadow.api.shadow.note.NoteShadowAlgorithm;
+import org.apache.shardingsphere.shadow.api.shadow.hint.HintShadowAlgorithm;
 import org.apache.shardingsphere.shadow.condition.ShadowDetermineCondition;
 import org.apache.shardingsphere.shadow.route.engine.determiner.ShadowAlgorithmDeterminer;
 import org.apache.shardingsphere.shadow.rule.ShadowRule;
@@ -40,30 +40,26 @@ import java.util.Properties;
 import static org.hamcrest.CoreMatchers.is;
 import static org.junit.Assert.assertThat;
 
-public final class NoteShadowAlgorithmDeterminerTest {
+public final class HintShadowAlgorithmDeterminerTest {
 
     private ShadowAlgorithmDeterminer shadowAlgorithmDeterminer;
 
     @Before
     public void init() {
-        shadowAlgorithmDeterminer = new NoteShadowAlgorithmDeterminer(createNoteShadowAlgorithm());
+        shadowAlgorithmDeterminer = new HintShadowAlgorithmDeterminer(createHintShadowAlgorithm());
     }
 
     @SuppressWarnings({"rawtypes", "unchecked"})
-    private NoteShadowAlgorithm<Comparable<?>> createNoteShadowAlgorithm() {
-        NoteShadowAlgorithm result = new SimpleSQLNoteShadowAlgorithm();
-        result.setProps(createProps());
-        result.init();
-        return result;
-    }
-
-    private Properties createProps() {
+    private HintShadowAlgorithm<Comparable<?>> createHintShadowAlgorithm() {
+        HintShadowAlgorithm result = new SimpleHintShadowAlgorithm();
         Properties properties = new Properties();
         properties.setProperty("shadow", "true");
         properties.setProperty("foo", "bar");
-        return properties;
+        result.setProps(properties);
+        result.init();
+        return result;
     }
-
+    
     @Test
     public void assertIsShadow() {
         assertThat(shadowAlgorithmDeterminer.isShadow(createShadowDetermineCondition(), new ShadowRule(createAlgorithmProvidedShadowRuleConfiguration())), is(true));
@@ -80,7 +76,7 @@ public final class NoteShadowAlgorithmDeterminerTest {
 
     private Map<String, ShadowAlgorithm> createShadowAlgorithms() {
         Map<String, ShadowAlgorithm> result = new LinkedHashMap<>();
-        result.put("user_id-insert-regex-algorithm", createNoteShadowAlgorithm());
+        result.put("simple-hint-algorithm", createHintShadowAlgorithm());
         return result;
     }
 
@@ -92,7 +88,7 @@ public final class NoteShadowAlgorithmDeterminerTest {
 
     private Collection<String> createShadowAlgorithmNames() {
         Collection<String> result = new LinkedList<>();
-        result.add("user_id-insert-regex-algorithm");
+        result.add("simple-hint-algorithm");
         return result;
     }
     
@@ -105,7 +101,8 @@ public final class NoteShadowAlgorithmDeterminerTest {
     
     private ShadowDetermineCondition createShadowDetermineCondition() {
         ShadowDetermineCondition result = new ShadowDetermineCondition("t_order", ShadowOperationType.INSERT);
-        result.initSqlNotes(Collections.singletonList("/*foo:bar,shadow:true*/"));
-        return result;
+        Collection<String> sqlComments = new LinkedList<>();
+        sqlComments.add("/*foo:bar,shadow:true*/");
+        return result.initSQLComments(sqlComments);
     }
 }
diff --git a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/test/java/org/apache/shardingsphere/shadow/route/engine/dml/ShadowDeleteStatementRoutingEngineTest.java b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/test/java/org/apache/shardingsphere/shadow/route/engine/dml/ShadowDeleteStatementRoutingEngineTest.java
index 74c1f3b..537e02b 100644
--- a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/test/java/org/apache/shardingsphere/shadow/route/engine/dml/ShadowDeleteStatementRoutingEngineTest.java
+++ b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/test/java/org/apache/shardingsphere/shadow/route/engine/dml/ShadowDeleteStatementRoutingEngineTest.java
@@ -98,7 +98,7 @@ public final class ShadowDeleteStatementRoutingEngineTest {
         assertThat(userId.getColumn(), is("user_id"));
         assertThat(userId.getOwner(), is("t_order"));
         assertThat(userId.getValues().iterator().next(), is("1"));
-        Optional<Collection<String>> sqlNotes = shadowDeleteStatementRoutingEngine.parseSqlNotes();
+        Optional<Collection<String>> sqlNotes = shadowDeleteStatementRoutingEngine.parseSQLComments();
         assertThat(sqlNotes.isPresent(), is(true));
         assertThat(sqlNotes.get().size(), is(2));
         Iterator<String> sqlNotesIt = sqlNotes.get().iterator();
diff --git a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/test/java/org/apache/shardingsphere/shadow/route/engine/dml/ShadowInsertStatementRoutingEngineTest.java b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/test/java/org/apache/shardingsphere/shadow/route/engine/dml/ShadowInsertStatementRoutingEngineTest.java
index cb25688..382de1e 100644
--- a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/test/java/org/apache/shardingsphere/shadow/route/engine/dml/ShadowInsertStatementRoutingEngineTest.java
+++ b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/test/java/org/apache/shardingsphere/shadow/route/engine/dml/ShadowInsertStatementRoutingEngineTest.java
@@ -111,7 +111,7 @@ public final class ShadowInsertStatementRoutingEngineTest {
         assertThat(orderName.getColumn(), is("order_name"));
         assertThat(orderName.getOwner(), is("t_order"));
         assertThat(orderName.getValues().iterator().next(), is("orderName"));
-        Optional<Collection<String>> sqlNotes = shadowRouteEngine.parseSqlNotes();
+        Optional<Collection<String>> sqlNotes = shadowRouteEngine.parseSQLComments();
         assertThat(sqlNotes.isPresent(), is(true));
         assertThat(sqlNotes.get().size(), is(2));
         Iterator<String> sqlNotesIt = sqlNotes.get().iterator();
diff --git a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/test/java/org/apache/shardingsphere/shadow/route/engine/dml/ShadowSelectStatementRoutingEngineTest.java b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/test/java/org/apache/shardingsphere/shadow/route/engine/dml/ShadowSelectStatementRoutingEngineTest.java
index e1b5f10..d6fe9e5 100644
--- a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/test/java/org/apache/shardingsphere/shadow/route/engine/dml/ShadowSelectStatementRoutingEngineTest.java
+++ b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/test/java/org/apache/shardingsphere/shadow/route/engine/dml/ShadowSelectStatementRoutingEngineTest.java
@@ -98,7 +98,7 @@ public final class ShadowSelectStatementRoutingEngineTest {
         assertThat(userId.getColumn(), is("user_id"));
         assertThat(userId.getOwner(), is("t_order"));
         assertThat(userId.getValues().iterator().next(), is("1"));
-        Optional<Collection<String>> sqlNotes = shadowRouteEngine.parseSqlNotes();
+        Optional<Collection<String>> sqlNotes = shadowRouteEngine.parseSQLComments();
         assertThat(sqlNotes.isPresent(), is(true));
         assertThat(sqlNotes.get().size(), is(2));
         Iterator<String> sqlNotesIt = sqlNotes.get().iterator();
diff --git a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/test/java/org/apache/shardingsphere/shadow/route/engine/dml/ShadowUpdateStatementRoutingEngineTest.java b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/test/java/org/apache/shardingsphere/shadow/route/engine/dml/ShadowUpdateStatementRoutingEngineTest.java
index 935e796..c5d4d9d 100644
--- a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/test/java/org/apache/shardingsphere/shadow/route/engine/dml/ShadowUpdateStatementRoutingEngineTest.java
+++ b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/test/java/org/apache/shardingsphere/shadow/route/engine/dml/ShadowUpdateStatementRoutingEngineTest.java
@@ -99,7 +99,7 @@ public final class ShadowUpdateStatementRoutingEngineTest {
         assertThat(userId.getColumn(), is("user_id"));
         assertThat(userId.getOwner(), is("t_order"));
         assertThat(userId.getValues().iterator().next(), is("1"));
-        Optional<Collection<String>> sqlNotes = shadowRouteEngine.parseSqlNotes();
+        Optional<Collection<String>> sqlNotes = shadowRouteEngine.parseSQLComments();
         assertTrue(sqlNotes.isPresent());
         assertThat(sqlNotes.get().size(), is(2));
         Iterator<String> sqlNotesIt = sqlNotes.get().iterator();
diff --git a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/test/java/org/apache/shardingsphere/shadow/rule/ShadowRuleTest.java b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/test/java/org/apache/shardingsphere/shadow/rule/ShadowRuleTest.java
index 859046a..c3d888a 100644
--- a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/test/java/org/apache/shardingsphere/shadow/rule/ShadowRuleTest.java
+++ b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/test/java/org/apache/shardingsphere/shadow/rule/ShadowRuleTest.java
@@ -20,7 +20,7 @@ package org.apache.shardingsphere.shadow.rule;
 import com.google.common.collect.Lists;
 import org.apache.shardingsphere.shadow.algorithm.config.AlgorithmProvidedShadowRuleConfiguration;
 import org.apache.shardingsphere.shadow.algorithm.shadow.column.ColumnRegexMatchShadowAlgorithm;
-import org.apache.shardingsphere.shadow.algorithm.shadow.note.SimpleSQLNoteShadowAlgorithm;
+import org.apache.shardingsphere.shadow.algorithm.shadow.hint.SimpleHintShadowAlgorithm;
 import org.apache.shardingsphere.shadow.api.config.ShadowRuleConfiguration;
 import org.apache.shardingsphere.shadow.api.config.datasource.ShadowDataSourceConfiguration;
 import org.apache.shardingsphere.shadow.api.config.table.ShadowTableConfiguration;
@@ -59,21 +59,21 @@ public final class ShadowRuleTest {
     
     private Map<String, ShadowAlgorithm> createShadowAlgorithms() {
         Map<String, ShadowAlgorithm> result = new LinkedHashMap<>();
-        result.put("simple-note-algorithm", createNoteShadowAlgorithm());
+        result.put("simple-hint-algorithm", createHintShadowAlgorithm());
         result.put("user-id-insert-regex-algorithm", createColumnShadowAlgorithm("user_id", "insert"));
         result.put("user-id-update-regex-algorithm", createColumnShadowAlgorithm("user_id", "update"));
         result.put("order-id-insert-regex-algorithm", createColumnShadowAlgorithm("order_id", "insert"));
         return result;
     }
     
-    private ShadowAlgorithm createNoteShadowAlgorithm() {
-        SimpleSQLNoteShadowAlgorithm simpleSQLNoteShadowAlgorithm = new SimpleSQLNoteShadowAlgorithm();
-        simpleSQLNoteShadowAlgorithm.setProps(createNoteProperties());
-        simpleSQLNoteShadowAlgorithm.init();
-        return simpleSQLNoteShadowAlgorithm;
+    private ShadowAlgorithm createHintShadowAlgorithm() {
+        SimpleHintShadowAlgorithm simpleHintShadowAlgorithm = new SimpleHintShadowAlgorithm();
+        simpleHintShadowAlgorithm.setProps(createHintProperties());
+        simpleHintShadowAlgorithm.init();
+        return simpleHintShadowAlgorithm;
     }
     
-    private Properties createNoteProperties() {
+    private Properties createHintProperties() {
         Properties properties = new Properties();
         properties.setProperty("shadow", "true");
         return properties;
@@ -103,7 +103,7 @@ public final class ShadowRuleTest {
     
     private Collection<String> createShadowAlgorithmNames(final String tableName) {
         Collection<String> result = new LinkedList<>();
-        result.add("simple-note-algorithm");
+        result.add("simple-hint-algorithm");
         if ("t_user".equals(tableName)) {
             result.add("user-id-insert-regex-algorithm");
             result.add("user-id-update-regex-algorithm");
@@ -140,10 +140,10 @@ public final class ShadowRuleTest {
     
     private void assertShadowTableRule(final String tableName, final ShadowTableRule shadowTableRule) {
         if ("t_user".equals(tableName)) {
-            assertThat(shadowTableRule.getNoteShadowAlgorithmNames().size(), is(1));
+            assertThat(shadowTableRule.getHintShadowAlgorithmNames().size(), is(1));
             assertThat(shadowTableRule.getColumnShadowAlgorithmNames().size(), is(2));
         } else {
-            assertThat(shadowTableRule.getNoteShadowAlgorithmNames().size(), is(1));
+            assertThat(shadowTableRule.getHintShadowAlgorithmNames().size(), is(1));
             assertThat(shadowTableRule.getColumnShadowAlgorithmNames().size(), is(1));
         }
     }
diff --git a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/test/resources/yaml/shadow-rule.yaml b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/test/resources/yaml/shadow-rule.yaml
index e1dbcd2..495889d6 100644
--- a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/test/resources/yaml/shadow-rule.yaml
+++ b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-core/src/test/resources/yaml/shadow-rule.yaml
@@ -56,7 +56,7 @@ rules:
       shadowAlgorithmNames:
         - user-id-insert-match-algorithm
         - user-id-select-match-algorithm
-        - simple-note-algorithm
+        - simple-hint-algorithm
   shadowAlgorithms:
     user-id-insert-match-algorithm:
       type: REGEX_MATCH
@@ -76,7 +76,7 @@ rules:
         operation: select
         column: user_id
         regex: "[1]"
-    simple-note-algorithm:
+    simple-hint-algorithm:
       type: SIMPLE_HINT
       props:
         shadow: true
diff --git a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-spring/shardingsphere-shadow-spring-boot-starter/src/test/java/org/apache/shardingsphere/shadow/spring/boot/PropertiesShadowSpringBootStarterTest.java b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-spring/shardingsphere-shadow-spring-boot-starter/src/test/java/org/apache/shardingsphere/shadow/spring/boot/PropertiesShadowSpringBootStarterTest.java
index ddcfe6f..dc67b73 100644
--- a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-spring/shardingsphere-shadow-spring-boot-starter/src/test/java/org/apache/shardingsphere/shadow/spring/boot/PropertiesShadowSpringBootStarterTest.java
+++ b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-spring/shardingsphere-shadow-spring-boot-starter/src/test/java/org/apache/shardingsphere/shadow/spring/boot/PropertiesShadowSpringBootStarterTest.java
@@ -19,7 +19,7 @@ package org.apache.shardingsphere.shadow.spring.boot;
 
 import org.apache.shardingsphere.shadow.algorithm.config.AlgorithmProvidedShadowRuleConfiguration;
 import org.apache.shardingsphere.shadow.algorithm.shadow.column.ColumnRegexMatchShadowAlgorithm;
-import org.apache.shardingsphere.shadow.algorithm.shadow.note.SimpleSQLNoteShadowAlgorithm;
+import org.apache.shardingsphere.shadow.algorithm.shadow.hint.SimpleHintShadowAlgorithm;
 import org.apache.shardingsphere.shadow.api.config.datasource.ShadowDataSourceConfiguration;
 import org.apache.shardingsphere.shadow.api.config.table.ShadowTableConfiguration;
 import org.apache.shardingsphere.shadow.spi.ShadowAlgorithm;
@@ -62,19 +62,19 @@ public class PropertiesShadowSpringBootStarterTest {
         assertThat(userIdMatchAlgorithm.getProps().get("operation"), is("insert"));
         assertThat(userIdMatchAlgorithm.getProps().get("column"), is("user_id"));
         assertThat(userIdMatchAlgorithm.getProps().get("regex"), is("[1]"));
-        ShadowAlgorithm simpleNoteAlgorithm = shadowAlgorithms.get("simple-note-algorithm");
-        assertThat(simpleNoteAlgorithm instanceof SimpleSQLNoteShadowAlgorithm, is(true));
-        assertThat(simpleNoteAlgorithm.getType(), is("SIMPLE_HINT"));
-        assertThat(simpleNoteAlgorithm.getProps().get("shadow"), is("true"));
-        assertThat(simpleNoteAlgorithm.getProps().get("foo"), is("bar"));
+        ShadowAlgorithm simpleHintAlgorithm = shadowAlgorithms.get("simple-hint-algorithm");
+        assertThat(simpleHintAlgorithm instanceof SimpleHintShadowAlgorithm, is(true));
+        assertThat(simpleHintAlgorithm.getType(), is("SIMPLE_HINT"));
+        assertThat(simpleHintAlgorithm.getProps().get("shadow"), is("true"));
+        assertThat(simpleHintAlgorithm.getProps().get("foo"), is("bar"));
     }
     
     private void assertShadowTables(final Map<String, ShadowTableConfiguration> shadowTables) {
         assertThat(shadowTables.size(), is(2));
         assertThat(shadowTables.get("t_order").getDataSourceNames().size(), is(2));
-        assertThat(shadowTables.get("t_order").getShadowAlgorithmNames(), is(Arrays.asList("user-id-match-algorithm", "simple-note-algorithm")));
+        assertThat(shadowTables.get("t_order").getShadowAlgorithmNames(), is(Arrays.asList("user-id-match-algorithm", "simple-hint-algorithm")));
         assertThat(shadowTables.get("t_user").getDataSourceNames().size(), is(1));
-        assertThat(shadowTables.get("t_user").getShadowAlgorithmNames(), is(Collections.singletonList("simple-note-algorithm")));
+        assertThat(shadowTables.get("t_user").getShadowAlgorithmNames(), is(Collections.singletonList("simple-hint-algorithm")));
     }
     
     private void assertShadowDataSources(final Map<String, ShadowDataSourceConfiguration> dataSources) {
diff --git a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-spring/shardingsphere-shadow-spring-boot-starter/src/test/java/org/apache/shardingsphere/shadow/spring/boot/YmlShadowDefaultSpringBootStarterTest.java b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-spring/shardingsphere-shadow-spring-boot-starter/src/test/java/org/apache/shardingsphere/shadow/spring/boot/YmlShadowDefaultSpringBootStarterTest.java
index 3ebaeb1..00e608d 100644
--- a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-spring/shardingsphere-shadow-spring-boot-starter/src/test/java/org/apache/shardingsphere/shadow/spring/boot/YmlShadowDefaultSpringBootStarterTest.java
+++ b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-spring/shardingsphere-shadow-spring-boot-starter/src/test/java/org/apache/shardingsphere/shadow/spring/boot/YmlShadowDefaultSpringBootStarterTest.java
@@ -18,7 +18,7 @@
 package org.apache.shardingsphere.shadow.spring.boot;
 
 import org.apache.shardingsphere.shadow.algorithm.config.AlgorithmProvidedShadowRuleConfiguration;
-import org.apache.shardingsphere.shadow.algorithm.shadow.note.SimpleSQLNoteShadowAlgorithm;
+import org.apache.shardingsphere.shadow.algorithm.shadow.hint.SimpleHintShadowAlgorithm;
 import org.apache.shardingsphere.shadow.api.config.datasource.ShadowDataSourceConfiguration;
 import org.apache.shardingsphere.shadow.api.config.table.ShadowTableConfiguration;
 import org.apache.shardingsphere.shadow.spi.ShadowAlgorithm;
@@ -54,15 +54,15 @@ public class YmlShadowDefaultSpringBootStarterTest {
     }
     
     private void assertDefaultShadowAlgorithm(final String defaultShadowAlgorithmName) {
-        assertThat("simple-note-algorithm".equals(defaultShadowAlgorithmName), is(true));
+        assertThat("simple-hint-algorithm".equals(defaultShadowAlgorithmName), is(true));
     }
     
     private void assertShadowAlgorithms(final Map<String, ShadowAlgorithm> shadowAlgorithms) {
-        ShadowAlgorithm simpleNoteAlgorithm = shadowAlgorithms.get("simple-note-algorithm");
-        assertThat(simpleNoteAlgorithm instanceof SimpleSQLNoteShadowAlgorithm, is(true));
-        assertThat(simpleNoteAlgorithm.getType(), is("SIMPLE_HINT"));
-        assertThat(simpleNoteAlgorithm.getProps().get("shadow"), is(true));
-        assertThat(simpleNoteAlgorithm.getProps().get("foo"), is("bar"));
+        ShadowAlgorithm simpleHintAlgorithm = shadowAlgorithms.get("simple-hint-algorithm");
+        assertThat(simpleHintAlgorithm instanceof SimpleHintShadowAlgorithm, is(true));
+        assertThat(simpleHintAlgorithm.getType(), is("SIMPLE_HINT"));
+        assertThat(simpleHintAlgorithm.getProps().get("shadow"), is(true));
+        assertThat(simpleHintAlgorithm.getProps().get("foo"), is("bar"));
     }
     
     private void assertShadowTables(final Map<String, ShadowTableConfiguration> shadowTables) {
diff --git a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-spring/shardingsphere-shadow-spring-boot-starter/src/test/java/org/apache/shardingsphere/shadow/spring/boot/YmlShadowSpringBootStarterTest.java b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-spring/shardingsphere-shadow-spring-boot-starter/src/test/java/org/apache/shardingsphere/shadow/spring/boot/YmlShadowSpringBootStarterTest.java
index 19a5c8a..a3177a0 100644
--- a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-spring/shardingsphere-shadow-spring-boot-starter/src/test/java/org/apache/shardingsphere/shadow/spring/boot/YmlShadowSpringBootStarterTest.java
+++ b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-spring/shardingsphere-shadow-spring-boot-starter/src/test/java/org/apache/shardingsphere/shadow/spring/boot/YmlShadowSpringBootStarterTest.java
@@ -20,7 +20,7 @@ package org.apache.shardingsphere.shadow.spring.boot;
 import org.apache.shardingsphere.shadow.algorithm.config.AlgorithmProvidedShadowRuleConfiguration;
 import org.apache.shardingsphere.shadow.algorithm.shadow.column.ColumnRegexMatchShadowAlgorithm;
 import org.apache.shardingsphere.shadow.algorithm.shadow.column.ColumnValueMatchShadowAlgorithm;
-import org.apache.shardingsphere.shadow.algorithm.shadow.note.SimpleSQLNoteShadowAlgorithm;
+import org.apache.shardingsphere.shadow.algorithm.shadow.hint.SimpleHintShadowAlgorithm;
 import org.apache.shardingsphere.shadow.api.config.datasource.ShadowDataSourceConfiguration;
 import org.apache.shardingsphere.shadow.api.config.table.ShadowTableConfiguration;
 import org.apache.shardingsphere.shadow.spi.ShadowAlgorithm;
@@ -68,19 +68,19 @@ public class YmlShadowSpringBootStarterTest {
         assertThat(userIdValueMatchAlgorithm.getProps().get("operation"), is("insert"));
         assertThat(userIdValueMatchAlgorithm.getProps().get("column"), is("user_id"));
         assertThat(userIdValueMatchAlgorithm.getProps().get("value"), is(1));
-        ShadowAlgorithm simpleNoteAlgorithm = shadowAlgorithms.get("simple-note-algorithm");
-        assertThat(simpleNoteAlgorithm instanceof SimpleSQLNoteShadowAlgorithm, is(true));
-        assertThat(simpleNoteAlgorithm.getType(), is("SIMPLE_HINT"));
-        assertThat(simpleNoteAlgorithm.getProps().get("shadow"), is(true));
-        assertThat(simpleNoteAlgorithm.getProps().get("foo"), is("bar"));
+        ShadowAlgorithm simpleHintAlgorithm = shadowAlgorithms.get("simple-hint-algorithm");
+        assertThat(simpleHintAlgorithm instanceof SimpleHintShadowAlgorithm, is(true));
+        assertThat(simpleHintAlgorithm.getType(), is("SIMPLE_HINT"));
+        assertThat(simpleHintAlgorithm.getProps().get("shadow"), is(true));
+        assertThat(simpleHintAlgorithm.getProps().get("foo"), is("bar"));
     }
     
     private void assertShadowTables(final Map<String, ShadowTableConfiguration> shadowTables) {
         assertThat(shadowTables.size(), is(2));
         assertThat(shadowTables.get("t_order").getDataSourceNames().size(), is(2));
-        assertThat(shadowTables.get("t_order").getShadowAlgorithmNames(), is(Arrays.asList("user-id-regex-match-algorithm", "simple-note-algorithm")));
+        assertThat(shadowTables.get("t_order").getShadowAlgorithmNames(), is(Arrays.asList("user-id-regex-match-algorithm", "simple-hint-algorithm")));
         assertThat(shadowTables.get("t_user").getDataSourceNames().size(), is(1));
-        assertThat(shadowTables.get("t_user").getShadowAlgorithmNames(), is(Arrays.asList("user-id-value-match-algorithm", "simple-note-algorithm")));
+        assertThat(shadowTables.get("t_user").getShadowAlgorithmNames(), is(Arrays.asList("user-id-value-match-algorithm", "simple-hint-algorithm")));
     }
     
     private void assertShadowDataSources(final Map<String, ShadowDataSourceConfiguration> dataSources) {
diff --git a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-spring/shardingsphere-shadow-spring-boot-starter/src/test/resources/application-shadow-default.yml b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-spring/shardingsphere-shadow-spring-boot-starter/src/test/resources/application-shadow-default.yml
index 1b352df..4d0059b 100644
--- a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-spring/shardingsphere-shadow-spring-boot-starter/src/test/resources/application-shadow-default.yml
+++ b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-spring/shardingsphere-shadow-spring-boot-starter/src/test/resources/application-shadow-default.yml
@@ -24,9 +24,9 @@ spring:
           shadow-data-source:
             source-data-source-name: ds
             shadow-data-source-name: ds-shadow
-        default-shadow-algorithm-name: simple-note-algorithm
+        default-shadow-algorithm-name: simple-hint-algorithm
         shadow-algorithms:
-          simple-note-algorithm:
+          simple-hint-algorithm:
             type: SIMPLE_HINT
             props:
               shadow: true
diff --git a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-spring/shardingsphere-shadow-spring-boot-starter/src/test/resources/application-shadow-properties.properties b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-spring/shardingsphere-shadow-spring-boot-starter/src/test/resources/application-shadow-properties.properties
index 1e8f17e..309b78d 100644
--- a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-spring/shardingsphere-shadow-spring-boot-starter/src/test/resources/application-shadow-properties.properties
+++ b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-spring/shardingsphere-shadow-spring-boot-starter/src/test/resources/application-shadow-properties.properties
@@ -21,15 +21,15 @@ spring.shardingsphere.rules.shadow.data-sources.shadow-data-source-1.source-data
 spring.shardingsphere.rules.shadow.data-sources.shadow-data-source-1.shadow-data-source-name=ds1-shadow
 
 spring.shardingsphere.rules.shadow.tables.t_order.data-source-names=shadow-data-source-0,shadow-data-source-1
-spring.shardingsphere.rules.shadow.tables.t_order.shadow-algorithm-names=user-id-match-algorithm,simple-note-algorithm
+spring.shardingsphere.rules.shadow.tables.t_order.shadow-algorithm-names=user-id-match-algorithm,simple-hint-algorithm
 spring.shardingsphere.rules.shadow.tables.t_user.data-source-names=shadow-data-source-1
-spring.shardingsphere.rules.shadow.tables.t_user.shadow-algorithm-names=simple-note-algorithm
+spring.shardingsphere.rules.shadow.tables.t_user.shadow-algorithm-names=simple-hint-algorithm
 
 spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-match-algorithm.type=REGEX_MATCH
 spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-match-algorithm.props.operation=insert
 spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-match-algorithm.props.column=user_id
 spring.shardingsphere.rules.shadow.shadow-algorithms.user-id-match-algorithm.props.regex=[1]
 
-spring.shardingsphere.rules.shadow.shadow-algorithms.simple-note-algorithm.type=SIMPLE_HINT
-spring.shardingsphere.rules.shadow.shadow-algorithms.simple-note-algorithm.props.shadow=true
-spring.shardingsphere.rules.shadow.shadow-algorithms.simple-note-algorithm.props.foo=bar
+spring.shardingsphere.rules.shadow.shadow-algorithms.simple-hint-algorithm.type=SIMPLE_HINT
+spring.shardingsphere.rules.shadow.shadow-algorithms.simple-hint-algorithm.props.shadow=true
+spring.shardingsphere.rules.shadow.shadow-algorithms.simple-hint-algorithm.props.foo=bar
diff --git a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-spring/shardingsphere-shadow-spring-boot-starter/src/test/resources/application-shadow-yml.yml b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-spring/shardingsphere-shadow-spring-boot-starter/src/test/resources/application-shadow-yml.yml
index f320d58..1dc5492 100644
--- a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-spring/shardingsphere-shadow-spring-boot-starter/src/test/resources/application-shadow-yml.yml
+++ b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-spring/shardingsphere-shadow-spring-boot-starter/src/test/resources/application-shadow-yml.yml
@@ -32,12 +32,12 @@ spring:
             data-source-names: shadow-data-source-0,shadow-data-source-1
             shadow-algorithm-names:
               - user-id-regex-match-algorithm
-              - simple-note-algorithm
+              - simple-hint-algorithm
           t_user:
             data-source-names: shadow-data-source-1
             shadow-algorithm-names:
               - user-id-value-match-algorithm
-              - simple-note-algorithm
+              - simple-hint-algorithm
         shadow-algorithms:
           user-id-regex-match-algorithm:
             type: REGEX_MATCH
@@ -51,7 +51,7 @@ spring:
               operation: insert
               column: user_id
               value: 1
-          simple-note-algorithm:
+          simple-hint-algorithm:
             type: SIMPLE_HINT
             props:
               shadow: true
diff --git a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-spring/shardingsphere-shadow-spring-namespace/src/test/java/org/apache/shardingsphere/shadow/spring/namespace/ShadowAlgorithmSpringNamespaceTest.java b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-spring/shardingsphere-shadow-spring-namespace/src/test/java/org/apache/shardingsphere/shadow/spring/namespace/ShadowAlgorithmSpringNamespaceTest.java
index ffe4097..f5b074e 100644
--- a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-spring/shardingsphere-shadow-spring-namespace/src/test/java/org/apache/shardingsphere/shadow/spring/namespace/ShadowAlgorithmSpringNamespaceTest.java
+++ b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-spring/shardingsphere-shadow-spring-namespace/src/test/java/org/apache/shardingsphere/shadow/spring/namespace/ShadowAlgorithmSpringNamespaceTest.java
@@ -20,7 +20,7 @@ package org.apache.shardingsphere.shadow.spring.namespace;
 import org.apache.shardingsphere.shadow.algorithm.config.AlgorithmProvidedShadowRuleConfiguration;
 import org.apache.shardingsphere.shadow.algorithm.shadow.column.ColumnRegexMatchShadowAlgorithm;
 import org.apache.shardingsphere.shadow.algorithm.shadow.column.ColumnValueMatchShadowAlgorithm;
-import org.apache.shardingsphere.shadow.algorithm.shadow.note.SimpleSQLNoteShadowAlgorithm;
+import org.apache.shardingsphere.shadow.algorithm.shadow.hint.SimpleHintShadowAlgorithm;
 import org.apache.shardingsphere.shadow.api.config.datasource.ShadowDataSourceConfiguration;
 import org.apache.shardingsphere.shadow.api.config.table.ShadowTableConfiguration;
 import org.apache.shardingsphere.shadow.spi.ShadowAlgorithm;
@@ -62,19 +62,19 @@ public final class ShadowAlgorithmSpringNamespaceTest extends AbstractJUnit4Spri
         assertThat(userIdValueMatchAlgorithm.getProps().get("operation"), is("insert"));
         assertThat(userIdValueMatchAlgorithm.getProps().get("column"), is("user_id"));
         assertThat(userIdValueMatchAlgorithm.getProps().get("value"), is("1"));
-        ShadowAlgorithm simpleNoteAlgorithm = shadowAlgorithms.get("simple-note-algorithm");
-        assertThat(simpleNoteAlgorithm instanceof SimpleSQLNoteShadowAlgorithm, is(true));
-        assertThat(simpleNoteAlgorithm.getType(), is("SIMPLE_HINT"));
-        assertThat(simpleNoteAlgorithm.getProps().get("shadow"), is("true"));
-        assertThat(simpleNoteAlgorithm.getProps().get("foo"), is("bar"));
+        ShadowAlgorithm simpleHintAlgorithm = shadowAlgorithms.get("simple-hint-algorithm");
+        assertThat(simpleHintAlgorithm instanceof SimpleHintShadowAlgorithm, is(true));
+        assertThat(simpleHintAlgorithm.getType(), is("SIMPLE_HINT"));
+        assertThat(simpleHintAlgorithm.getProps().get("shadow"), is("true"));
+        assertThat(simpleHintAlgorithm.getProps().get("foo"), is("bar"));
     }
     
     private void assertShadowTables(final Map<String, ShadowTableConfiguration> shadowTables) {
         assertThat(shadowTables.size(), is(2));
         assertThat(shadowTables.get("t_order").getDataSourceNames().size(), is(2));
-        assertThat(shadowTables.get("t_order").getShadowAlgorithmNames(), is(Arrays.asList("user-id-regex-match-algorithm", "simple-note-algorithm")));
+        assertThat(shadowTables.get("t_order").getShadowAlgorithmNames(), is(Arrays.asList("user-id-regex-match-algorithm", "simple-hint-algorithm")));
         assertThat(shadowTables.get("t_user").getDataSourceNames().size(), is(1));
-        assertThat(shadowTables.get("t_user").getShadowAlgorithmNames(), is(Arrays.asList("user-id-value-match-algorithm", "simple-note-algorithm")));
+        assertThat(shadowTables.get("t_user").getShadowAlgorithmNames(), is(Arrays.asList("user-id-value-match-algorithm", "simple-hint-algorithm")));
     }
     
     private void assertShadowDataSources(final Map<String, ShadowDataSourceConfiguration> dataSources) {
diff --git a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-spring/shardingsphere-shadow-spring-namespace/src/test/java/org/apache/shardingsphere/shadow/spring/namespace/ShadowDefaultAlgorithmSpringNamespaceTest.java b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-spring/shardingsphere-shadow-spring-namespace/src/test/java/org/apache/shardingsphere/shadow/spring/namespace/ShadowDefaultAlgorithmSpringNamespaceTest.java
index a2bc074..b070abb 100644
--- a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-spring/shardingsphere-shadow-spring-namespace/src/test/java/org/apache/shardingsphere/shadow/spring/namespace/ShadowDefaultAlgorithmSpringNamespaceTest.java
+++ b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-spring/shardingsphere-shadow-spring-namespace/src/test/java/org/apache/shardingsphere/shadow/spring/namespace/ShadowDefaultAlgorithmSpringNamespaceTest.java
@@ -18,7 +18,7 @@
 package org.apache.shardingsphere.shadow.spring.namespace;
 
 import org.apache.shardingsphere.shadow.algorithm.config.AlgorithmProvidedShadowRuleConfiguration;
-import org.apache.shardingsphere.shadow.algorithm.shadow.note.SimpleSQLNoteShadowAlgorithm;
+import org.apache.shardingsphere.shadow.algorithm.shadow.hint.SimpleHintShadowAlgorithm;
 import org.apache.shardingsphere.shadow.api.config.datasource.ShadowDataSourceConfiguration;
 import org.apache.shardingsphere.shadow.api.config.table.ShadowTableConfiguration;
 import org.apache.shardingsphere.shadow.spi.ShadowAlgorithm;
@@ -48,15 +48,15 @@ public final class ShadowDefaultAlgorithmSpringNamespaceTest extends AbstractJUn
     }
     
     private void assertDefaultShadowAlgorithm(final String defaultShadowAlgorithmName) {
-        assertThat("simple-note-algorithm".equals(defaultShadowAlgorithmName), is(true));
+        assertThat("simple-hint-algorithm".equals(defaultShadowAlgorithmName), is(true));
     }
     
     private void assertShadowAlgorithms(final Map<String, ShadowAlgorithm> shadowAlgorithms) {
-        ShadowAlgorithm simpleNoteAlgorithm = shadowAlgorithms.get("simple-note-algorithm");
-        assertThat(simpleNoteAlgorithm instanceof SimpleSQLNoteShadowAlgorithm, is(true));
-        assertThat(simpleNoteAlgorithm.getType(), is("SIMPLE_HINT"));
-        assertThat(simpleNoteAlgorithm.getProps().get("shadow"), is("true"));
-        assertThat(simpleNoteAlgorithm.getProps().get("foo"), is("bar"));
+        ShadowAlgorithm simpleHintAlgorithm = shadowAlgorithms.get("simple-hint-algorithm");
+        assertThat(simpleHintAlgorithm instanceof SimpleHintShadowAlgorithm, is(true));
+        assertThat(simpleHintAlgorithm.getType(), is("SIMPLE_HINT"));
+        assertThat(simpleHintAlgorithm.getProps().get("shadow"), is("true"));
+        assertThat(simpleHintAlgorithm.getProps().get("foo"), is("bar"));
     }
     
     private void assertShadowTables(final Map<String, ShadowTableConfiguration> shadowTables) {
diff --git a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-spring/shardingsphere-shadow-spring-namespace/src/test/resources/META-INF/spring/shadow-algorithm-application-context.xml b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-spring/shardingsphere-shadow-spring-namespace/src/test/resources/META-INF/spring/shadow-algorithm-application-context.xml
index b8a0803..d6374bb 100644
--- a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-spring/shardingsphere-shadow-spring-namespace/src/test/resources/META-INF/spring/shadow-algorithm-application-context.xml
+++ b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-spring/shardingsphere-shadow-spring-namespace/src/test/resources/META-INF/spring/shadow-algorithm-application-context.xml
@@ -38,7 +38,7 @@
             <prop key="value">1</prop>
         </props>
     </shadow:shadow-algorithm>
-    <shadow:shadow-algorithm id="simple-note-algorithm" type="SIMPLE_HINT">
+    <shadow:shadow-algorithm id="simple-hint-algorithm" type="SIMPLE_HINT">
         <props>
             <prop key="shadow">true</prop>
             <prop key="foo">bar</prop>
@@ -50,11 +50,11 @@
         <shadow:data-source id="shadow-data-source-1" source-data-source-name="ds1" shadow-data-source-name="ds1-shadow"/>
         <shadow:shadow-table name="t_order" data-sources="shadow-data-source-0,shadow-data-source-1">
             <shadow:algorithm shadow-algorithm-ref= "user-id-regex-match-algorithm" />
-            <shadow:algorithm shadow-algorithm-ref= "simple-note-algorithm" />
+            <shadow:algorithm shadow-algorithm-ref= "simple-hint-algorithm" />
         </shadow:shadow-table>
         <shadow:shadow-table name="t_user" data-sources="shadow-data-source-1">
             <shadow:algorithm shadow-algorithm-ref= "user-id-value-match-algorithm" />
-            <shadow:algorithm shadow-algorithm-ref= "simple-note-algorithm" />
+            <shadow:algorithm shadow-algorithm-ref= "simple-hint-algorithm" />
         </shadow:shadow-table>
     </shadow:rule>
 </beans>
diff --git a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-spring/shardingsphere-shadow-spring-namespace/src/test/resources/META-INF/spring/shadow-default-algorithm-application-context.xml b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-spring/shardingsphere-shadow-spring-namespace/src/test/resources/META-INF/spring/shadow-default-algorithm-application-context.xml
index 8b1fc68..065ebc3 100644
--- a/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-spring/shardingsphere-shadow-spring-namespace/src/test/resources/META-INF/spring/shadow-default-algorithm-application-context.xml
+++ b/shardingsphere-features/shardingsphere-shadow/shardingsphere-shadow-spring/shardingsphere-shadow-spring-namespace/src/test/resources/META-INF/spring/shadow-default-algorithm-application-context.xml
@@ -24,7 +24,7 @@
                            http://shardingsphere.apache.org/schema/shardingsphere/shadow
                            http://shardingsphere.apache.org/schema/shardingsphere/shadow/shadow.xsd
                            ">
-    <shadow:shadow-algorithm id="simple-note-algorithm" type="SIMPLE_HINT">
+    <shadow:shadow-algorithm id="simple-hint-algorithm" type="SIMPLE_HINT">
         <props>
             <prop key="shadow">true</prop>
             <prop key="foo">bar</prop>
@@ -33,6 +33,6 @@
 
     <shadow:rule id="shadowRule" enable="true">
         <shadow:data-source id="shadow-data-source" source-data-source-name="ds" shadow-data-source-name="ds-shadow"/>
-        <shadow:default-shadow-algorithm-name name="simple-note-algorithm"/>
+        <shadow:default-shadow-algorithm-name name="simple-hint-algorithm"/>
     </shadow:rule>
 </beans>
diff --git a/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-core-spring/shardingsphere-jdbc-core-spring-boot-starter/src/test/java/org/apache/shardingsphere/spring/boot/SpringBootStarterTest.java b/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-core-spring/shardingsphere-jdbc-core-spring-boot-starter/src/test/java/org/apache/shardingsphere/spring/boot/SpringBootStarterTest.java
index 847fa86..f6240f6 100644
--- a/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-core-spring/shardingsphere-jdbc-core-spring-boot-starter/src/test/java/org/apache/shardingsphere/spring/boot/SpringBootStarterTest.java
+++ b/shardingsphere-jdbc/shardingsphere-jdbc-spring/shardingsphere-jdbc-core-spring/shardingsphere-jdbc-core-spring-boot-starter/src/test/java/org/apache/shardingsphere/spring/boot/SpringBootStarterTest.java
@@ -31,7 +31,7 @@ import org.apache.shardingsphere.readwritesplitting.algorithm.RandomReplicaLoadB
 import org.apache.shardingsphere.readwritesplitting.rule.ReadwriteSplittingDataSourceRule;
 import org.apache.shardingsphere.readwritesplitting.rule.ReadwriteSplittingRule;
 import org.apache.shardingsphere.shadow.api.shadow.column.ColumnShadowAlgorithm;
-import org.apache.shardingsphere.shadow.api.shadow.note.NoteShadowAlgorithm;
+import org.apache.shardingsphere.shadow.api.shadow.hint.HintShadowAlgorithm;
 import org.apache.shardingsphere.shadow.rule.ShadowDataSourceRule;
 import org.apache.shardingsphere.shadow.rule.ShadowRule;
 import org.apache.shardingsphere.shadow.rule.ShadowTableRule;
@@ -151,11 +151,11 @@ public class SpringBootStarterTest {
         assertThat(shadowTableRules.size(), is(2));
         assertThat(shadowTableRules.get("t_order").getTableName(), is("t_order"));
         assertThat(shadowTableRules.get("t_order").getShadowDataSources().size(), is(1));
-        assertThat(shadowTableRules.get("t_order").getNoteShadowAlgorithmNames().size(), is(1));
+        assertThat(shadowTableRules.get("t_order").getHintShadowAlgorithmNames().size(), is(1));
         assertThat(shadowTableRules.get("t_order").getColumnShadowAlgorithmNames().size(), is(2));
         assertThat(shadowTableRules.get("t_user").getTableName(), is("t_user"));
         assertThat(shadowTableRules.get("t_user").getShadowDataSources().size(), is(1));
-        assertThat(shadowTableRules.get("t_user").getNoteShadowAlgorithmNames().size(), is(1));
+        assertThat(shadowTableRules.get("t_user").getHintShadowAlgorithmNames().size(), is(1));
         assertThat(shadowTableRules.get("t_user").getColumnShadowAlgorithmNames().size(), is(0));
     }
     
@@ -163,7 +163,7 @@ public class SpringBootStarterTest {
         assertThat(shadowAlgorithms.size(), is(3));
         assertThat(shadowAlgorithms.get("user-id-match-algorithm") instanceof ColumnShadowAlgorithm, is(true));
         assertThat(shadowAlgorithms.get("order-id-match-algorithm") instanceof ColumnShadowAlgorithm, is(true));
-        assertThat(shadowAlgorithms.get("simple-hint-algorithm") instanceof NoteShadowAlgorithm, is(true));
+        assertThat(shadowAlgorithms.get("simple-hint-algorithm") instanceof HintShadowAlgorithm, is(true));
     }
     
     private void assertShadowDataSourceMappings(final Map<String, ShadowDataSourceRule> shadowDataSourceMappings) {