You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by zh...@apache.org on 2020/06/16 01:31:08 UTC

[shardingsphere] branch master updated: Name changing and package moving for Sharding Algorithm (#6056)

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

zhyee 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 6e494fd  Name changing and package moving for Sharding Algorithm (#6056)
6e494fd is described below

commit 6e494fd7beb1e24a668c53a714ce4ecc9c945f26
Author: Liang Zhang <te...@163.com>
AuthorDate: Tue Jun 16 09:30:53 2020 +0800

    Name changing and package moving for Sharding Algorithm (#6056)
    
    * rename StandardRangeShardingAlgorithm to VolumeBasedRangeShardingAlgorithm
    
    * rename CustomRangeShardingAlgorithm to BoundaryBasedRangeShardingAlgorithm
    
    * rename CUSTOM_RANGE to BOUNDARY_RANGE
    
    * rename STANDARD_RANGE to VOLUME_RANGE
    
    * rename HashShardingAlgorithm to HashModShardingAlgorithm
    
    * rename ModuloShardingAlgorithm to ModShardingAlgorithm
    
    * Create new packages for datetimeAlgorithm and hashAlgorithm
    
    * rename CustomDateTimeShardingAlgorithm to MutableIntervalShardingAlgorithm
    
    * rename MutableIntervalShardingAlgorithmTest
    
    * update doc with MutableIntervalShardingAlgorithm
    
    * rename FixedIntervalShardingAlgorithm
    
    * update properties key
---
 docs/document/content/dev-manual/sharding.cn.md    | 18 ++++----
 docs/document/content/dev-manual/sharding.en.md    | 18 ++++----
 .../configuration/java-api/sharding.cn.md          | 18 ++++----
 .../configuration/java-api/sharding.en.md          | 18 ++++----
 .../FixedIntervalShardingAlgorithm.java}           | 25 ++++++-----
 .../MutableIntervalShardingAlgorithm.java}         | 52 +++++++++++-----------
 .../HashModShardingAlgorithm.java}                 | 13 +++---
 .../ModShardingAlgorithm.java}                     |  9 ++--
 ...va => BoundaryBasedRangeShardingAlgorithm.java} | 27 +++++------
 ...java => VolumeBasedRangeShardingAlgorithm.java} | 32 ++++++-------
 ...e.shardingsphere.sharding.spi.ShardingAlgorithm | 12 ++---
 .../sharding/rule/TableRuleTest.java               | 14 +++---
 ...ava => FixedIntervalShardingAlgorithmTest.java} | 52 +++++++++++-----------
 ...Test.java => HashModShardingAlgorithmTest.java} |  7 +--
 ...ithmTest.java => ModShardingAlgorithmTest.java} |  7 +--
 ...a => MutableIntervalShardingAlgorithmTest.java} | 20 ++++-----
 ...> BoundaryBasedRangeShardingAlgorithmTest.java} | 10 ++---
 ... => VolumeBasedRangeShardingAlgorithmTest.java} | 18 ++++----
 18 files changed, 182 insertions(+), 188 deletions(-)

diff --git a/docs/document/content/dev-manual/sharding.cn.md b/docs/document/content/dev-manual/sharding.cn.md
index 2a3440b..204f778 100644
--- a/docs/document/content/dev-manual/sharding.cn.md
+++ b/docs/document/content/dev-manual/sharding.cn.md
@@ -11,15 +11,15 @@ chapter = true
 | ------------------------------- | ---------------------------- |
 | ShardingAlgorithm               | 分片算法                      |
 
-| *已知实现类*                     | *详细说明*                    |
-| ------------------------------- | ---------------------------- |
-| InlineShardingAlgorithm         | 基于行表达式的分片算法          |
-| ModuloShardingAlgorithm         | 基于取模的分片算法             |
-| HashShardingAlgorithm           | 基于哈希取模的分片算法          |
-| DatetimeShardingAlgorithm       | 基于时间的分片算法             |
-| CustomDateTimeShardingAlgorithm | 基于用户自定义时间格式的分片算法 |
-| StandardRangeShardingAlgorithm  | 基于范围的分片算法             |
-| CustomRangeShardingAlgorithm    | 基于用户自定义范围的分片算法     |
+| *已知实现类*                         | *详细说明*                |
+| ----------------------------------- | ------------------------ |
+| InlineShardingAlgorithm             | 基于行表达式的分片算法      |
+| ModShardingAlgorithm                | 基于取模的分片算法         |
+| HashModShardingAlgorithm            | 基于哈希取模的分片算法      |
+| FixedIntervalShardingAlgorithm      | 基于固定时间范围的分片算法  |
+| MutableIntervalShardingAlgorithm    | 基于可变时间范围的分片算法  |
+| VolumeBasedRangeShardingAlgorithm   | 基于分片容量的范围分片算法  |
+| BoundaryBasedRangeShardingAlgorithm | 基于分片边界的范围分片算法  |
 
 ## KeyGenerateAlgorithm
 
diff --git a/docs/document/content/dev-manual/sharding.en.md b/docs/document/content/dev-manual/sharding.en.md
index 3b7041f..9cef545 100644
--- a/docs/document/content/dev-manual/sharding.en.md
+++ b/docs/document/content/dev-manual/sharding.en.md
@@ -11,15 +11,15 @@ chapter = true
 | ------------------------------- | -------------------------------------- |
 | ShardingAlgorithm               | Sharding algorithm                     |
 
-| *Implementation Class*          | *Description*                          |
-| ------------------------------- | -------------------------------------- |
-| InlineShardingAlgorithm         | Inline sharding algorithm              |
-| ModuloShardingAlgorithm         | Modulo sharding algorithm              |
-| HashShardingAlgorithm           | Hash sharding algorithm                |
-| DatetimeShardingAlgorithm       | Datetime sharding algorithm            |
-| CustomDateTimeShardingAlgorithm | Customized datetime sharding algorithm |
-| StandardRangeShardingAlgorithm  | Range sharding algorithm               |
-| CustomRangeShardingAlgorithm    | Customized range sharding algorithm    |
+| *Implementation Class*              | *Description*                           |
+| ----------------------------------- | --------------------------------------- |
+| InlineShardingAlgorithm             | Inline sharding algorithm               |
+| ModShardingAlgorithm                | Modulo sharding algorithm               |
+| HashModShardingAlgorithm            | Hash modulo sharding algorithm          |
+| FixedIntervalShardingAlgorithm      | Fixed interval sharding algorithm       |
+| MutableIntervalShardingAlgorithm    | Mutable interval sharding algorithm     |
+| VolumeBasedRangeShardingAlgorithm   | Volume based range sharding algorithm   |
+| BoundaryBasedRangeShardingAlgorithm | Boundary based range sharding algorithm |
 
 ## KeyGenerateAlgorithm
 
diff --git a/docs/document/content/user-manual/shardingsphere-jdbc/configuration/java-api/sharding.cn.md b/docs/document/content/user-manual/shardingsphere-jdbc/configuration/java-api/sharding.cn.md
index 10c061a..849ea0c 100644
--- a/docs/document/content/user-manual/shardingsphere-jdbc/configuration/java-api/sharding.cn.md
+++ b/docs/document/content/user-manual/shardingsphere-jdbc/configuration/java-api/sharding.cn.md
@@ -76,7 +76,7 @@ Apache ShardingSphere 内置的标准分片算法实现类包括:
 
 #### 取模分片算法
 
-类名称:org.apache.shardingsphere.sharding.strategy.algorithm.sharding.ModuloShardingAlgorithm
+类名称:org.apache.shardingsphere.sharding.strategy.algorithm.sharding.mod.ModShardingAlgorithm
 
 可配置属性:
 
@@ -86,7 +86,7 @@ Apache ShardingSphere 内置的标准分片算法实现类包括:
 
 #### 哈希取模分片算法
 
-类名称:org.apache.shardingsphere.sharding.strategy.algorithm.sharding.HashShardingAlgorithm
+类名称:org.apache.shardingsphere.sharding.strategy.algorithm.sharding.mod.HashModShardingAlgorithm
 
 可配置属性:
 
@@ -94,9 +94,9 @@ Apache ShardingSphere 内置的标准分片算法实现类包括:
 | -------------- | --------- | ------- |
 | sharding.count | int       | 分片数量 |
 
-#### 固定容量范围分片算法
+#### 基于分片容量的范围分片算法
 
-类名称:org.apache.shardingsphere.sharding.strategy.algorithm.sharding.range.StandardRangeShardingAlgorithm
+类名称:org.apache.shardingsphere.sharding.strategy.algorithm.sharding.range.VolumeBasedRangeShardingAlgorithm
 
 可配置属性:
 
@@ -106,9 +106,9 @@ Apache ShardingSphere 内置的标准分片算法实现类包括:
 | range.upper     | long      | 范围上界,超过边界的数据会报错 |
 | sharding.volume | long      | 分片容量                    |
 
-#### 自定义边界范围分片算法
+#### 基于分片边界的范围分片算法
 
-类名称:org.apache.shardingsphere.sharding.strategy.algorithm.sharding.range.CustomRangeShardingAlgorithm
+类名称:org.apache.shardingsphere.sharding.strategy.algorithm.sharding.range.BoundaryBasedRangeShardingAlgorithm
 
 可配置属性:
 
@@ -118,7 +118,7 @@ Apache ShardingSphere 内置的标准分片算法实现类包括:
 
 #### 定长时间段分片算法
 
-类名称:org.apache.shardingsphere.sharding.strategy.algorithm.sharding.DatetimeShardingAlgorithm
+类名称:org.apache.shardingsphere.sharding.strategy.algorithm.sharding.datetime.FixedIntervalShardingAlgorithm
 
 可配置属性:
 
@@ -128,9 +128,9 @@ Apache ShardingSphere 内置的标准分片算法实现类包括:
 | datetime.upper   | String    | 分片的结束时间范围,时间戳格式:yyyy-MM-dd HH:mm:ss |
 | sharding.seconds | long      | 单一分片所能承载的最大时间,单位:秒                |
 
-#### 自定义时间边界分片算法
+#### 基于可变时间范围的分片算法
 
-类名称:org.apache.shardingsphere.sharding.strategy.algorithm.sharding.CustomDateTimeShardingAlgorithm
+类名称:org.apache.shardingsphere.sharding.strategy.algorithm.sharding.datetime.MutableIntervalShardingAlgorithm
 
 可配置属性:
 
diff --git a/docs/document/content/user-manual/shardingsphere-jdbc/configuration/java-api/sharding.en.md b/docs/document/content/user-manual/shardingsphere-jdbc/configuration/java-api/sharding.en.md
index e5d1212..065d9b9 100644
--- a/docs/document/content/user-manual/shardingsphere-jdbc/configuration/java-api/sharding.en.md
+++ b/docs/document/content/user-manual/shardingsphere-jdbc/configuration/java-api/sharding.en.md
@@ -76,7 +76,7 @@ Attributes:
 
 #### Modulo Sharding Algorithm
 
-Class name: org.apache.shardingsphere.sharding.strategy.algorithm.sharding.ModuloShardingAlgorithm
+Class name: org.apache.shardingsphere.sharding.strategy.algorithm.sharding.mod.ModShardingAlgorithm
 
 Attributes:
 
@@ -86,7 +86,7 @@ Attributes:
 
 #### Hash Modulo Sharding Algorithm
 
-Class name: org.apache.shardingsphere.sharding.strategy.algorithm.sharding.HashShardingAlgorithm
+Class name: org.apache.shardingsphere.sharding.strategy.algorithm.sharding.mod.HashModShardingAlgorithm
 
 Attributes:
 
@@ -94,9 +94,9 @@ Attributes:
 | -------------- | ---------- | -------------- |
 | sharding.count | int        | Sharding count |
 
-#### Volume Range Sharding Algorithm
+#### Volume Based Range Sharding Algorithm
 
-Class name: org.apache.shardingsphere.sharding.strategy.algorithm.sharding.range.StandardRangeShardingAlgorithm
+Class name: org.apache.shardingsphere.sharding.strategy.algorithm.sharding.range.VolumeBasedRangeShardingAlgorithm
 
 Attributes:
 
@@ -106,9 +106,9 @@ Attributes:
 | range.upper     | long       | Range upper bound, throw exception if upper than bound |
 | sharding.volume | long       | Sharding volume                                        |
 
-#### Customized Range Sharding Algorithm
+#### Boundary Based Range Sharding Algorithm
 
-Class name: org.apache.shardingsphere.sharding.strategy.algorithm.sharding.range.CustomRangeShardingAlgorithm
+Class name: org.apache.shardingsphere.sharding.strategy.algorithm.sharding.range.BoundaryBasedRangeShardingAlgorithm
 
 Attributes:
 
@@ -118,7 +118,7 @@ Attributes:
 
 #### Fixed Time Range Sharding Algorithm
 
-Class name: org.apache.shardingsphere.sharding.strategy.algorithm.sharding.DatetimeShardingAlgorithm
+Class name: org.apache.shardingsphere.sharding.strategy.algorithm.sharding.datetime.FixedIntervalShardingAlgorithm
 
 Attributes:
 
@@ -128,9 +128,9 @@ Attributes:
 | datetime.upper   | String     | Shard datetime end boundary, pattern: yyyy-MM-dd HH:mm:ss   |
 | sharding.seconds | long       | Max seconds for the data in one shard                       |
 
-#### Custom Datetime Bound Sharding Algorithm
+#### Mutable Interval Sharding Algorithm
 
-Class name: org.apache.shardingsphere.sharding.strategy.algorithm.sharding.CustomDateTimeShardingAlgorithm
+Class name: org.apache.shardingsphere.sharding.strategy.algorithm.sharding.datetime.MutableIntervalShardingAlgorithm
 
 Attributes:
 
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/main/java/org/apache/shardingsphere/sharding/strategy/algorithm/sharding/DatetimeShardingAlgorithm.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/main/java/org/apache/shardingsphere/sharding/strategy/algorithm/sharding/datetime/FixedIntervalShardingAlgorithm.java
similarity index 85%
rename from shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/main/java/org/apache/shardingsphere/sharding/strategy/algorithm/sharding/DatetimeShardingAlgorithm.java
rename to shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/main/java/org/apache/shardingsphere/sharding/strategy/algorithm/sharding/datetime/FixedIntervalShardingAlgorithm.java
index d16cbeb..27c1112 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/main/java/org/apache/shardingsphere/sharding/strategy/algorithm/sharding/DatetimeShardingAlgorithm.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/main/java/org/apache/shardingsphere/sharding/strategy/algorithm/sharding/datetime/FixedIntervalShardingAlgorithm.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.sharding.strategy.algorithm.sharding;
+package org.apache.shardingsphere.sharding.strategy.algorithm.sharding.datetime;
 
 import com.google.common.base.Preconditions;
 import com.google.common.collect.Range;
@@ -36,21 +36,23 @@ import java.util.LinkedHashSet;
 import java.util.Properties;
 
 /**
- * Datetime sharding algorithm.
+ * Fixed interval sharding algorithm.
  * 
- * <p>Shard by `y = floor(x/v)` algorithm, which means y begins from 0.
- * v is `sharding.seconds`, and the minimum time unit is 1 sec.
- * `datetime.lower` decides the beginning datetime to shard. On the other hand, `datetime.upper` decides the end datetime to shard.</p>
- * <p>Notice: Anytime less then `datetime.lower` will route to the first partition, and anytime great than `datetime.upper` will route to the last sharding.</p>
+ * <p>
+ *     Shard by `y = floor(x/v)` algorithm, which means y begins from 0. v is `sharding.seconds`, and the minimum time unit is 1 sec.
+ *     `datetime.lower` decides the beginning datetime to shard. On the other hand, `datetime.upper` decides the end datetime to shard.
+ *     
+ *     Notice: Anytime less then `datetime.lower` will route to the first partition, and anytime great than `datetime.upper` will route to the last sharding.
+ * </p>
  */
 @Getter
-public final class DatetimeShardingAlgorithm implements StandardShardingAlgorithm<Comparable<?>>, ShardingAutoTableAlgorithm {
+public final class FixedIntervalShardingAlgorithm implements StandardShardingAlgorithm<Comparable<?>>, ShardingAutoTableAlgorithm {
     
-    public static final String DATETIME_LOWER = "datetime.lower";
+    private static final String DATETIME_LOWER = "datetime.lower";
     
-    public static final String DATETIME_UPPER = "datetime.upper";
+    private static final String DATETIME_UPPER = "datetime.upper";
     
-    public static final String SHARDING_SECONDS_KEY = "sharding.seconds";
+    private static final String SHARDING_SECONDS_KEY = "sharding.seconds";
     
     private static final String DATETIME_PATTERN = "yyyy-MM-dd HH:mm:ss";
     
@@ -65,8 +67,7 @@ public final class DatetimeShardingAlgorithm implements StandardShardingAlgorith
     public void init() {
         Preconditions.checkNotNull(props.get(SHARDING_SECONDS_KEY), "Sharding partition volume cannot be null.");
         Preconditions.checkState(null != props.get(DATETIME_LOWER) && checkDatetimePattern(props.get(DATETIME_LOWER).toString()), "%s pattern is required.", DATETIME_PATTERN);
-        Preconditions.checkState(null != props.get(DATETIME_UPPER) && checkDatetimePattern(props.get(DATETIME_UPPER).toString()),
-                "%s pattern is required.", DATETIME_PATTERN);
+        Preconditions.checkState(null != props.get(DATETIME_UPPER) && checkDatetimePattern(props.get(DATETIME_UPPER).toString()), "%s pattern is required.", DATETIME_PATTERN);
         autoTablesAmount = (int) (Math.ceil(parseDate(props.get(DATETIME_UPPER).toString()) / getPartitionValue()) + 2);
     }
     
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/main/java/org/apache/shardingsphere/sharding/strategy/algorithm/sharding/CustomDateTimeShardingAlgorithm.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/main/java/org/apache/shardingsphere/sharding/strategy/algorithm/sharding/datetime/MutableIntervalShardingAlgorithm.java
similarity index 83%
rename from shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/main/java/org/apache/shardingsphere/sharding/strategy/algorithm/sharding/CustomDateTimeShardingAlgorithm.java
rename to shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/main/java/org/apache/shardingsphere/sharding/strategy/algorithm/sharding/datetime/MutableIntervalShardingAlgorithm.java
index cd22ab4..0499e93 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/main/java/org/apache/shardingsphere/sharding/strategy/algorithm/sharding/CustomDateTimeShardingAlgorithm.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/main/java/org/apache/shardingsphere/sharding/strategy/algorithm/sharding/datetime/MutableIntervalShardingAlgorithm.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.sharding.strategy.algorithm.sharding;
+package org.apache.shardingsphere.sharding.strategy.algorithm.sharding.datetime;
 
 import com.google.common.base.Preconditions;
 import lombok.Getter;
@@ -37,7 +37,7 @@ import java.util.Properties;
 import java.util.Set;
 
 /**
- * Datetime sharding algorithm that adapt various shard method by define properties below.
+ * Mutable interval sharding algorithm that adapt various shard method by define properties below.
  *
  * <p>properties defined here:
  *
@@ -61,19 +61,19 @@ import java.util.Set;
  *
  * <p>examples: when shard by {@link IsoFields#QUARTER_OF_YEAR}, datetime.step.unit = Months and datetime.step.amount = 3 is a better choice.
  */
-public final class CustomDateTimeShardingAlgorithm implements StandardShardingAlgorithm<Comparable<?>> {
+public final class MutableIntervalShardingAlgorithm implements StandardShardingAlgorithm<Comparable<?>> {
     
-    private static final String DATE_TIME_FORMAT = "datetime.format";
+    private static final String DATE_TIME_FORMAT_KEY = "datetime.format";
     
-    private static final String TABLE_SUFFIX_FORMAT = "table.suffix.format";
+    private static final String TABLE_SUFFIX_FORMAT_KEY = "table.suffix.format";
     
-    private static final String DEFAULT_LOWER = "datetime.lower";
+    private static final String DEFAULT_LOWER_KEY = "datetime.lower";
     
-    private static final String DEFAULT_UPPER = "datetime.upper";
+    private static final String DEFAULT_UPPER_KEY = "datetime.upper";
     
-    private static final String STEP_UNIT = "datetime.step.unit";
+    private static final String STEP_UNIT_KEY = "datetime.step.unit";
     
-    private static final String STEP_AMOUNT = "datetime.step.amount";
+    private static final String STEP_AMOUNT_KEY = "datetime.step.amount";
     
     private DateTimeFormatter datetimeFormatter;
     
@@ -87,16 +87,16 @@ public final class CustomDateTimeShardingAlgorithm implements StandardShardingAl
     
     @Override
     public void init() {
-        Preconditions.checkNotNull(props.getProperty(DATE_TIME_FORMAT));
-        Preconditions.checkNotNull(props.getProperty(TABLE_SUFFIX_FORMAT));
-        Preconditions.checkNotNull(props.getProperty(DEFAULT_LOWER));
-        stepUnit = null == props.getProperty(STEP_UNIT) ? ChronoUnit.DAYS : generateStepUnit();
-        stepAmount = Integer.parseInt(props.getProperty(STEP_AMOUNT, "1"));
-        datetimeFormatter = DateTimeFormatter.ofPattern(props.getProperty(DATE_TIME_FORMAT));
+        Preconditions.checkNotNull(props.getProperty(DATE_TIME_FORMAT_KEY));
+        Preconditions.checkNotNull(props.getProperty(TABLE_SUFFIX_FORMAT_KEY));
+        Preconditions.checkNotNull(props.getProperty(DEFAULT_LOWER_KEY));
+        stepUnit = null == props.getProperty(STEP_UNIT_KEY) ? ChronoUnit.DAYS : generateStepUnit();
+        stepAmount = Integer.parseInt(props.getProperty(STEP_AMOUNT_KEY, "1"));
+        datetimeFormatter = DateTimeFormatter.ofPattern(props.getProperty(DATE_TIME_FORMAT_KEY));
         try {
-            parseDateTimeForValue(props.getProperty(DEFAULT_LOWER));
-            if (props.getProperty(DEFAULT_UPPER) != null) {
-                parseDateTimeForValue(props.getProperty(DEFAULT_UPPER));
+            parseDateTimeForValue(props.getProperty(DEFAULT_LOWER_KEY));
+            if (props.getProperty(DEFAULT_UPPER_KEY) != null) {
+                parseDateTimeForValue(props.getProperty(DEFAULT_UPPER_KEY));
             }
         } catch (DateTimeParseException e) {
             throw new UnsupportedOperationException("can't apply shard value for default lower/upper values", e);
@@ -119,12 +119,12 @@ public final class CustomDateTimeShardingAlgorithm implements StandardShardingAl
         if (!hasStart && !hasEnd) {
             return availableTargetNames;
         }
-        LocalDateTime start = hasStart ? parseDateTimeForValue(shardingValue.getValueRange().lowerEndpoint().toString()) : parseDateTimeForValue(props.getProperty(DEFAULT_LOWER));
+        LocalDateTime start = hasStart ? parseDateTimeForValue(shardingValue.getValueRange().lowerEndpoint().toString()) : parseDateTimeForValue(props.getProperty(DEFAULT_LOWER_KEY));
         LocalDateTime end = hasEnd
                 ? parseDateTimeForValue(shardingValue.getValueRange().upperEndpoint().toString())
-                : props.getProperty(DEFAULT_UPPER) == null
+                : props.getProperty(DEFAULT_UPPER_KEY) == null
                 ? LocalDateTime.now()
-                : parseDateTimeForValue(props.getProperty(DEFAULT_UPPER));
+                : parseDateTimeForValue(props.getProperty(DEFAULT_UPPER_KEY));
         LocalDateTime tmp = start;
         while (!tmp.isAfter(end)) {
             mergeTableIfMatch(tmp, tables, availableTargetNames);
@@ -135,11 +135,11 @@ public final class CustomDateTimeShardingAlgorithm implements StandardShardingAl
     }
     
     private LocalDateTime parseDateTimeForValue(final String value) {
-        return LocalDateTime.parse(value.substring(0, props.getProperty(DATE_TIME_FORMAT).length()), datetimeFormatter);
+        return LocalDateTime.parse(value.substring(0, props.getProperty(DATE_TIME_FORMAT_KEY).length()), datetimeFormatter);
     }
     
     private String formatForDateTime(final LocalDateTime localDateTime) {
-        return localDateTime.format(DateTimeFormatter.ofPattern(props.get(TABLE_SUFFIX_FORMAT).toString()));
+        return localDateTime.format(DateTimeFormatter.ofPattern(props.get(TABLE_SUFFIX_FORMAT_KEY).toString()));
     }
     
     private void mergeTableIfMatch(final LocalDateTime dateTime, final Collection<String> tables, final Collection<String> availableTargetNames) {
@@ -149,16 +149,16 @@ public final class CustomDateTimeShardingAlgorithm implements StandardShardingAl
     
     private ChronoUnit generateStepUnit() {
         for (ChronoUnit unit : ChronoUnit.values()) {
-            if (unit.toString().equalsIgnoreCase(props.getProperty(STEP_UNIT))) {
+            if (unit.toString().equalsIgnoreCase(props.getProperty(STEP_UNIT_KEY))) {
                 return unit;
             }
         }
         throw new UnsupportedOperationException(
-                String.format("can't find step unit for specified datetime.step.unit prop: %s", props.getProperty(STEP_UNIT)));
+                String.format("can't find step unit for specified datetime.step.unit prop: %s", props.getProperty(STEP_UNIT_KEY)));
     }
     
     @Override
     public String getType() {
-        return "CUSTOM_DATE_TIME";
+        return "MUTABLE_INTERVAL";
     }
 }
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/main/java/org/apache/shardingsphere/sharding/strategy/algorithm/sharding/HashShardingAlgorithm.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/main/java/org/apache/shardingsphere/sharding/strategy/algorithm/sharding/mod/HashModShardingAlgorithm.java
similarity index 87%
rename from shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/main/java/org/apache/shardingsphere/sharding/strategy/algorithm/sharding/HashShardingAlgorithm.java
rename to shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/main/java/org/apache/shardingsphere/sharding/strategy/algorithm/sharding/mod/HashModShardingAlgorithm.java
index fd450a4..79ca380 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/main/java/org/apache/shardingsphere/sharding/strategy/algorithm/sharding/HashShardingAlgorithm.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/main/java/org/apache/shardingsphere/sharding/strategy/algorithm/sharding/mod/HashModShardingAlgorithm.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.sharding.strategy.algorithm.sharding;
+package org.apache.shardingsphere.sharding.strategy.algorithm.sharding.mod;
 
 import com.google.common.base.Preconditions;
 import lombok.Getter;
@@ -31,15 +31,16 @@ import java.util.Properties;
 /**
  * Hash sharding algorithm.
  * 
- * <p>Shard by `y = z mod v` algorithm with z = hash(x). 
- * v is sharding count.
- * All available targets will be returned if sharding value is `RangeShardingValue`</p>
+ * <p>
+ *     Shard by `y = z mod v` algorithm with z = hash(x), v is sharding count.
+ *     All available targets will be returned if sharding value is {@code RangeShardingValue}.
+ * </p>
  */
 @Getter
 @Setter
-public final class HashShardingAlgorithm implements StandardShardingAlgorithm<Comparable<?>>, ShardingAutoTableAlgorithm {
+public final class HashModShardingAlgorithm implements StandardShardingAlgorithm<Comparable<?>>, ShardingAutoTableAlgorithm {
     
-    public static final String SHARDING_COUNT_KEY = "sharding.count";
+    private static final String SHARDING_COUNT_KEY = "sharding.count";
     
     private Properties props = new Properties();
     
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/main/java/org/apache/shardingsphere/sharding/strategy/algorithm/sharding/ModuloShardingAlgorithm.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/main/java/org/apache/shardingsphere/sharding/strategy/algorithm/sharding/mod/ModShardingAlgorithm.java
similarity index 93%
rename from shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/main/java/org/apache/shardingsphere/sharding/strategy/algorithm/sharding/ModuloShardingAlgorithm.java
rename to shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/main/java/org/apache/shardingsphere/sharding/strategy/algorithm/sharding/mod/ModShardingAlgorithm.java
index 3aad4bf..3f8d4e7 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/main/java/org/apache/shardingsphere/sharding/strategy/algorithm/sharding/ModuloShardingAlgorithm.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/main/java/org/apache/shardingsphere/sharding/strategy/algorithm/sharding/mod/ModShardingAlgorithm.java
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package org.apache.shardingsphere.sharding.strategy.algorithm.sharding;
+package org.apache.shardingsphere.sharding.strategy.algorithm.sharding.mod;
 
 import com.google.common.base.Preconditions;
 import lombok.Getter;
@@ -33,15 +33,14 @@ import java.util.Properties;
  * Modulo sharding algorithm.
  * 
  * <p>
- *     Shard by `y = x mod v` algorithm. 
- *     v is sharding count. 
+ *     Shard by `y = x mod v` algorithm, v is sharding count. 
  * </p>
  */
 @Getter
 @Setter
-public final class ModuloShardingAlgorithm implements StandardShardingAlgorithm<Comparable<?>>, ShardingAutoTableAlgorithm {
+public final class ModShardingAlgorithm implements StandardShardingAlgorithm<Comparable<?>>, ShardingAutoTableAlgorithm {
     
-    public static final String SHARDING_COUNT_KEY = "sharding.count";
+    private static final String SHARDING_COUNT_KEY = "sharding.count";
     
     private Properties props = new Properties();
     
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/main/java/org/apache/shardingsphere/sharding/strategy/algorithm/sharding/range/CustomRangeShardingAlgorithm.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/main/java/org/apache/shardingsphere/sharding/strategy/algorithm/sharding/range/BoundaryBasedRangeShardingAlgorithm.java
similarity index 72%
rename from shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/main/java/org/apache/shardingsphere/sharding/strategy/algorithm/sharding/range/CustomRangeShardingAlgorithm.java
rename to shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/main/java/org/apache/shardingsphere/sharding/strategy/algorithm/sharding/range/BoundaryBasedRangeShardingAlgorithm.java
index 675ccd1..c7b9d02 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/main/java/org/apache/shardingsphere/sharding/strategy/algorithm/sharding/range/CustomRangeShardingAlgorithm.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/main/java/org/apache/shardingsphere/sharding/strategy/algorithm/sharding/range/BoundaryBasedRangeShardingAlgorithm.java
@@ -30,29 +30,26 @@ import java.util.Properties;
 import java.util.stream.Collectors;
 
 /**
- * Custom range sharding algorithm.
+ * Boundary based range sharding algorithm.
+ * 
  * <p>
- * Custom range sharding algorithm is similar to the rule of partition table.
- * User can specify the range by setting the `sharding.ranges` parameter.
- * The `sharding.ranges` parameter is an ordered list of numbers, separated by commas.
- * </p>
- * <p>
- * For example: If the `sharding.ranges` parameter is set to `1,5,10`,
- * the parameter will split all values into four intervals——(-∞, 1), [1,5), [5,10), [10, +∞),
- * which corresponding to partition_0, partition_1, partition_2, partition_3.
- * The sharding values will be divided into different partition by its value.
+ *     This algorithm is similar to the rule of partition table.
+ *     
+ *     For example: If the `sharding.ranges` parameter is set to `1, 5, 10`, the parameter will split all values into four intervals with (-∞, 1), [1, 5), [5, 10), [10, +∞), 
+ *     which corresponding to partition_0, partition_1, partition_2, partition_3.
+ *     The sharding values will be divided into different sharding by its value.
  * </p>
  */
-public final class CustomRangeShardingAlgorithm extends AbstractRangeShardingAlgorithm {
+public final class BoundaryBasedRangeShardingAlgorithm extends AbstractRangeShardingAlgorithm {
     
-    public static final String SHARDING_RANGES_KEY = "sharding.ranges";
+    private static final String SHARDING_RANGES_KEY = "sharding.ranges";
     
     @Override
     public Map<Integer, Range<Long>> createPartitionRangeMap(final Properties props) {
-        Preconditions.checkNotNull(props.get(SHARDING_RANGES_KEY), "Custom range sharding algorithm partition ranges cannot be null.");
+        Preconditions.checkNotNull(props.get(SHARDING_RANGES_KEY), "Sharding ranges cannot be null.");
         List<Long> partitionRanges = Splitter.on(",").trimResults().splitToList(props.get(SHARDING_RANGES_KEY).toString())
                 .stream().map(Longs::tryParse).filter(Objects::nonNull).sorted().collect(Collectors.toList());
-        Preconditions.checkArgument(CollectionUtils.isNotEmpty(partitionRanges), "Custom range sharding algorithm partition ranges is not valid.");
+        Preconditions.checkArgument(CollectionUtils.isNotEmpty(partitionRanges), "Sharding ranges is not valid.");
         Map<Integer, Range<Long>> result = Maps.newHashMapWithExpectedSize(partitionRanges.size() + 1);
         for (int i = 0; i < partitionRanges.size(); i++) {
             Long rangeValue = partitionRanges.get(i);
@@ -71,6 +68,6 @@ public final class CustomRangeShardingAlgorithm extends AbstractRangeShardingAlg
     
     @Override
     public String getType() {
-        return "CUSTOM_RANGE";
+        return "BOUNDARY_RANGE";
     }
 }
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/main/java/org/apache/shardingsphere/sharding/strategy/algorithm/sharding/range/StandardRangeShardingAlgorithm.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/main/java/org/apache/shardingsphere/sharding/strategy/algorithm/sharding/range/VolumeBasedRangeShardingAlgorithm.java
similarity index 62%
rename from shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/main/java/org/apache/shardingsphere/sharding/strategy/algorithm/sharding/range/StandardRangeShardingAlgorithm.java
rename to shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/main/java/org/apache/shardingsphere/sharding/strategy/algorithm/sharding/range/VolumeBasedRangeShardingAlgorithm.java
index 693fd7d..e998500 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/main/java/org/apache/shardingsphere/sharding/strategy/algorithm/sharding/range/StandardRangeShardingAlgorithm.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/main/java/org/apache/shardingsphere/sharding/strategy/algorithm/sharding/range/VolumeBasedRangeShardingAlgorithm.java
@@ -27,36 +27,32 @@ import java.util.Map;
 import java.util.Properties;
 
 /**
- * Standard range sharding algorithm.
+ * Volume based range sharding algorithm.
  * 
  * <p>
- * Standard range sharding algorithm is similar to the rule of partition table, but it can only be split by the same size.
- * User can specify the range by setting `range.lower`, `range.upper` and `sharding.volume` parameters.
- * The `sharding.volume` parameter determines the size of each sharding.
- * </p>
- * <p>
- * For example: If the `range.lower` parameter is set to `10`, the `range.upper` parameter is set to `45`,
- * and the `sharding.volume` parameter is set to `10`. The values in range [10,45] will be split to different partitions
- * ——[10,20), [20, 30), [30, 40), [40, 45), and other values will be split to (-∞, 10) and [45, +∞).
+ *     This algorithm is similar to the rule of partition table, but it can only be split by the same size.
+ *     
+ *     For example: If the `range.lower` parameter is set to `10`, the `range.upper` parameter is set to `45`, and the `sharding.volume` parameter is set to `10`. 
+ *     The values in range [10, 45] will be split to different partitions with [10, 20), [20, 30), [30, 40), [40, 45), and other values will throw exception.
  * </p>
  */
-public final class StandardRangeShardingAlgorithm extends AbstractRangeShardingAlgorithm {
+public final class VolumeBasedRangeShardingAlgorithm extends AbstractRangeShardingAlgorithm {
     
-    public static final String RANGE_LOWER_KEY = "range.lower";
+    private static final String RANGE_LOWER_KEY = "range.lower";
     
-    public static final String RANGE_UPPER_KEY = "range.upper";
+    private static final String RANGE_UPPER_KEY = "range.upper";
     
-    public static final String SHARDING_VOLUME_KEY = "sharding.volume";
+    private static final String SHARDING_VOLUME_KEY = "sharding.volume";
     
     @Override
     public Map<Integer, Range<Long>> createPartitionRangeMap(final Properties props) {
-        Preconditions.checkNotNull(props.get(RANGE_LOWER_KEY), "Standard range sharding algorithm partition lower cannot be null.");
-        Preconditions.checkNotNull(props.get(RANGE_UPPER_KEY), "Standard range sharding algorithm partition upper cannot be null.");
-        Preconditions.checkNotNull(props.get(SHARDING_VOLUME_KEY), "Standard range sharding algorithm partition volume cannot be null.");
+        Preconditions.checkNotNull(props.get(RANGE_LOWER_KEY), "Lower range cannot be null.");
+        Preconditions.checkNotNull(props.get(RANGE_UPPER_KEY), "Upper range cannot be null.");
+        Preconditions.checkNotNull(props.get(SHARDING_VOLUME_KEY), "Sharding volume cannot be null.");
         long lower = Long.parseLong(props.get(RANGE_LOWER_KEY).toString());
         long upper = Long.parseLong(props.get(RANGE_UPPER_KEY).toString());
         long volume = Long.parseLong(props.get(SHARDING_VOLUME_KEY).toString());
-        Preconditions.checkArgument(upper - lower >= volume, "Standard range sharding algorithm partition range can not be smaller than volume.");
+        Preconditions.checkArgument(upper - lower >= volume, "Range can not be smaller than volume.");
         int partitionSize = Math.toIntExact(LongMath.divide(upper - lower, volume, RoundingMode.CEILING));
         Map<Integer, Range<Long>> result = Maps.newHashMapWithExpectedSize(partitionSize + 2);
         result.put(0, Range.lessThan(lower));
@@ -69,6 +65,6 @@ public final class StandardRangeShardingAlgorithm extends AbstractRangeShardingA
     
     @Override
     public String getType() {
-        return "STANDARD_RANGE";
+        return "VOLUME_RANGE";
     }
 }
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/main/resources/META-INF/services/org.apache.shardingsphere.sharding.spi.ShardingAlgorithm b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/main/resources/META-INF/services/org.apache.shardingsphere.sharding.spi.ShardingAlgorithm
index 8d22bc0..fa0ca39 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/main/resources/META-INF/services/org.apache.shardingsphere.sharding.spi.ShardingAlgorithm
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/main/resources/META-INF/services/org.apache.shardingsphere.sharding.spi.ShardingAlgorithm
@@ -16,9 +16,9 @@
 #
  
 org.apache.shardingsphere.sharding.strategy.algorithm.sharding.inline.InlineShardingAlgorithm
-org.apache.shardingsphere.sharding.strategy.algorithm.sharding.ModuloShardingAlgorithm
-org.apache.shardingsphere.sharding.strategy.algorithm.sharding.HashShardingAlgorithm
-org.apache.shardingsphere.sharding.strategy.algorithm.sharding.range.StandardRangeShardingAlgorithm
-org.apache.shardingsphere.sharding.strategy.algorithm.sharding.range.CustomRangeShardingAlgorithm
-org.apache.shardingsphere.sharding.strategy.algorithm.sharding.DatetimeShardingAlgorithm
-org.apache.shardingsphere.sharding.strategy.algorithm.sharding.CustomDateTimeShardingAlgorithm
+org.apache.shardingsphere.sharding.strategy.algorithm.sharding.mod.ModShardingAlgorithm
+org.apache.shardingsphere.sharding.strategy.algorithm.sharding.mod.HashModShardingAlgorithm
+org.apache.shardingsphere.sharding.strategy.algorithm.sharding.range.VolumeBasedRangeShardingAlgorithm
+org.apache.shardingsphere.sharding.strategy.algorithm.sharding.range.BoundaryBasedRangeShardingAlgorithm
+org.apache.shardingsphere.sharding.strategy.algorithm.sharding.datetime.FixedIntervalShardingAlgorithm
+org.apache.shardingsphere.sharding.strategy.algorithm.sharding.datetime.MutableIntervalShardingAlgorithm
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/test/java/org/apache/shardingsphere/sharding/rule/TableRuleTest.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/test/java/org/apache/shardingsphere/sharding/rule/TableRuleTest.java
index 7e96b57..e422993 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/test/java/org/apache/shardingsphere/sharding/rule/TableRuleTest.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/test/java/org/apache/shardingsphere/sharding/rule/TableRuleTest.java
@@ -27,7 +27,7 @@ import org.apache.shardingsphere.sharding.api.config.strategy.keygen.KeyGenerate
 import org.apache.shardingsphere.sharding.api.config.strategy.sharding.NoneShardingStrategyConfiguration;
 import org.apache.shardingsphere.sharding.api.config.strategy.sharding.StandardShardingStrategyConfiguration;
 import org.apache.shardingsphere.sharding.spi.KeyGenerateAlgorithm;
-import org.apache.shardingsphere.sharding.strategy.algorithm.sharding.ModuloShardingAlgorithm;
+import org.apache.shardingsphere.sharding.strategy.algorithm.sharding.mod.ModShardingAlgorithm;
 import org.apache.shardingsphere.sharding.strategy.algorithm.sharding.inline.InlineShardingAlgorithm;
 import org.apache.shardingsphere.sharding.strategy.route.none.NoneShardingStrategy;
 import org.junit.BeforeClass;
@@ -90,9 +90,9 @@ public final class TableRuleTest {
         ShardingSphereServiceLoader.register(KeyGenerateAlgorithm.class);
         ShardingAutoTableRuleConfiguration tableRuleConfig = new ShardingAutoTableRuleConfiguration("LOGIC_TABLE", "ds0,ds1");
         tableRuleConfig.setShardingStrategy(new StandardShardingStrategyConfiguration("col_1", "MOD"));
-        ModuloShardingAlgorithm moduloShardingAlgorithm = new ModuloShardingAlgorithm();
-        moduloShardingAlgorithm.getProps().setProperty(ModuloShardingAlgorithm.SHARDING_COUNT_KEY, "4");
-        TableRule actual = new TableRule(tableRuleConfig, Arrays.asList("ds0", "ds1", "ds2"), moduloShardingAlgorithm, null);
+        ModShardingAlgorithm shardingAlgorithm = new ModShardingAlgorithm();
+        shardingAlgorithm.getProps().setProperty("sharding.count", "4");
+        TableRule actual = new TableRule(tableRuleConfig, Arrays.asList("ds0", "ds1", "ds2"), shardingAlgorithm, null);
         assertThat(actual.getLogicTable(), is("logic_table"));
         assertThat(actual.getActualDataNodes().size(), is(4));
         assertTrue(actual.getActualDataNodes().contains(new DataNode("ds0", "logic_table_0")));
@@ -108,9 +108,9 @@ public final class TableRuleTest {
         ShardingSphereServiceLoader.register(KeyGenerateAlgorithm.class);
         ShardingAutoTableRuleConfiguration tableRuleConfig = new ShardingAutoTableRuleConfiguration("LOGIC_TABLE", null);
         tableRuleConfig.setShardingStrategy(new StandardShardingStrategyConfiguration("col_1", "MOD"));
-        ModuloShardingAlgorithm moduloShardingAlgorithm = new ModuloShardingAlgorithm();
-        moduloShardingAlgorithm.getProps().setProperty(ModuloShardingAlgorithm.SHARDING_COUNT_KEY, "4");
-        TableRule actual = new TableRule(tableRuleConfig, Arrays.asList("ds0", "ds1", "ds2"), moduloShardingAlgorithm, null);
+        ModShardingAlgorithm shardingAlgorithm = new ModShardingAlgorithm();
+        shardingAlgorithm.getProps().setProperty("sharding.count", "4");
+        TableRule actual = new TableRule(tableRuleConfig, Arrays.asList("ds0", "ds1", "ds2"), shardingAlgorithm, null);
         assertThat(actual.getLogicTable(), is("logic_table"));
         assertThat(actual.getActualDataNodes().size(), is(4));
         assertTrue(actual.getActualDataNodes().contains(new DataNode("ds0", "logic_table_0")));
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/test/java/org/apache/shardingsphere/sharding/strategy/algorithm/sharding/DatetimeShardingAlgorithmTest.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/test/java/org/apache/shardingsphere/sharding/strategy/algorithm/sharding/FixedIntervalShardingAlgorithmTest.java
similarity index 63%
rename from shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/test/java/org/apache/shardingsphere/sharding/strategy/algorithm/sharding/DatetimeShardingAlgorithmTest.java
rename to shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/test/java/org/apache/shardingsphere/sharding/strategy/algorithm/sharding/FixedIntervalShardingAlgorithmTest.java
index c12ead8..2cb6ae7 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/test/java/org/apache/shardingsphere/sharding/strategy/algorithm/sharding/DatetimeShardingAlgorithmTest.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/test/java/org/apache/shardingsphere/sharding/strategy/algorithm/sharding/FixedIntervalShardingAlgorithmTest.java
@@ -17,9 +17,9 @@
 
 package org.apache.shardingsphere.sharding.strategy.algorithm.sharding;
 
-import com.google.common.collect.Lists;
 import com.google.common.collect.Range;
 import org.apache.shardingsphere.infra.config.properties.ConfigurationProperties;
+import org.apache.shardingsphere.sharding.strategy.algorithm.sharding.datetime.FixedIntervalShardingAlgorithm;
 import org.apache.shardingsphere.sharding.strategy.route.standard.StandardShardingStrategy;
 import org.apache.shardingsphere.sharding.strategy.route.value.ListRouteValue;
 import org.apache.shardingsphere.sharding.strategy.route.value.RangeRouteValue;
@@ -27,7 +27,9 @@ import org.apache.shardingsphere.sharding.strategy.route.value.RouteValue;
 import org.junit.Before;
 import org.junit.Test;
 
+import java.util.Arrays;
 import java.util.Collection;
+import java.util.Collections;
 import java.util.List;
 import java.util.Properties;
 
@@ -35,24 +37,24 @@ import static org.hamcrest.CoreMatchers.is;
 import static org.junit.Assert.assertThat;
 import static org.junit.Assert.assertTrue;
 
-public final class DatetimeShardingAlgorithmTest {
+public final class FixedIntervalShardingAlgorithmTest {
     
     private StandardShardingStrategy shardingStrategy;
     
     @Before
     public void setup() {
-        DatetimeShardingAlgorithm shardingAlgorithm = new DatetimeShardingAlgorithm();
-        shardingAlgorithm.getProps().setProperty(DatetimeShardingAlgorithm.DATETIME_LOWER, "2020-01-01 00:00:00");
-        shardingAlgorithm.getProps().setProperty(DatetimeShardingAlgorithm.DATETIME_UPPER, "2020-01-01 00:00:16");
-        shardingAlgorithm.getProps().setProperty(DatetimeShardingAlgorithm.SHARDING_SECONDS_KEY, "4");
+        FixedIntervalShardingAlgorithm shardingAlgorithm = new FixedIntervalShardingAlgorithm();
+        shardingAlgorithm.getProps().setProperty("datetime.lower", "2020-01-01 00:00:00");
+        shardingAlgorithm.getProps().setProperty("datetime.upper", "2020-01-01 00:00:16");
+        shardingAlgorithm.getProps().setProperty("sharding.seconds", "4");
         shardingAlgorithm.init();
         shardingStrategy = new StandardShardingStrategy("create_time", shardingAlgorithm);
     }
     
     @Test
     public void assertPreciseDoSharding() {
-        List<String> availableTargetNames = Lists.newArrayList("t_order_0", "t_order_1", "t_order_2", "t_order_3");
-        List<RouteValue> shardingValues = Lists.newArrayList(new ListRouteValue<>("create_time", "t_order", Lists.newArrayList("2020-01-01 00:00:01", "2020-01-01 00:00:02")));
+        List<String> availableTargetNames = Arrays.asList("t_order_0", "t_order_1", "t_order_2", "t_order_3");
+        List<RouteValue> shardingValues = Collections.singletonList(new ListRouteValue<>("create_time", "t_order", Arrays.asList("2020-01-01 00:00:01", "2020-01-01 00:00:02")));
         Collection<String> actual = shardingStrategy.doSharding(availableTargetNames, shardingValues, new ConfigurationProperties(new Properties()));
         assertThat(actual.size(), is(1));
         assertTrue(actual.contains("t_order_1"));
@@ -60,9 +62,8 @@ public final class DatetimeShardingAlgorithmTest {
     
     @Test
     public void assertPreciseDoShardingWithFirstPartition() {
-        List<String> availableTargetNames = Lists.newArrayList("t_order_0", "t_order_1", "t_order_2", "t_order_3");
-        List<RouteValue> shardingValues = Lists.newArrayList(new ListRouteValue<>("create_time", "t_order",
-                Lists.newArrayList("2019-12-01 00:00:01", "2020-01-01 00:00:02")));
+        List<String> availableTargetNames = Arrays.asList("t_order_0", "t_order_1", "t_order_2", "t_order_3");
+        List<RouteValue> shardingValues = Collections.singletonList(new ListRouteValue<>("create_time", "t_order", Arrays.asList("2019-12-01 00:00:01", "2020-01-01 00:00:02")));
         Collection<String> actual = shardingStrategy.doSharding(availableTargetNames, shardingValues, new ConfigurationProperties(new Properties()));
         assertThat(actual.size(), is(2));
         assertTrue(actual.contains("t_order_0"));
@@ -71,9 +72,8 @@ public final class DatetimeShardingAlgorithmTest {
     
     @Test
     public void assertPreciseDoShardingBeyondTheLastOne() {
-        List<String> availableTargetNames = Lists.newArrayList("t_order_0", "t_order_1", "t_order_2", "t_order_3", "t_order_4", "t_order_5");
-        List<RouteValue> shardingValues = Lists.newArrayList(new ListRouteValue<>("create_time", "t_order",
-                Lists.newArrayList("2021-01-01 00:00:02")));
+        List<String> availableTargetNames = Arrays.asList("t_order_0", "t_order_1", "t_order_2", "t_order_3", "t_order_4", "t_order_5");
+        List<RouteValue> shardingValues = Collections.singletonList(new ListRouteValue<>("create_time", "t_order", Collections.singletonList("2021-01-01 00:00:02")));
         Collection<String> actual = shardingStrategy.doSharding(availableTargetNames, shardingValues, new ConfigurationProperties(new Properties()));
         assertThat(actual.size(), is(1));
         assertTrue(actual.contains("t_order_5"));
@@ -81,18 +81,18 @@ public final class DatetimeShardingAlgorithmTest {
     
     @Test
     public void assertRangeDoShardingWithAllRange() {
-        List<String> availableTargetNames = Lists.newArrayList("t_order_0", "t_order_1", "t_order_2", "t_order_3", "t_order_4");
+        List<String> availableTargetNames = Arrays.asList("t_order_0", "t_order_1", "t_order_2", "t_order_3", "t_order_4");
         Range<String> rangeValue = Range.closed("2019-01-01 00:00:00", "2020-01-01 00:00:15");
-        List<RouteValue> shardingValues = Lists.newArrayList(new RangeRouteValue<>("create_time", "t_order", rangeValue));
+        List<RouteValue> shardingValues = Collections.singletonList(new RangeRouteValue<>("create_time", "t_order", rangeValue));
         Collection<String> actual = shardingStrategy.doSharding(availableTargetNames, shardingValues, new ConfigurationProperties(new Properties()));
         assertThat(actual.size(), is(5));
     }
     
     @Test
     public void assertRangeDoShardingWithPartRange() {
-        List<String> availableTargetNames = Lists.newArrayList("t_order_0", "t_order_1", "t_order_2", "t_order_3");
+        List<String> availableTargetNames = Arrays.asList("t_order_0", "t_order_1", "t_order_2", "t_order_3");
         Range<String> rangeValue = Range.closed("2020-01-01 00:00:04", "2020-01-01 00:00:10");
-        List<RouteValue> shardingValues = Lists.newArrayList(new RangeRouteValue<>("create_time", "t_order", rangeValue));
+        List<RouteValue> shardingValues = Collections.singletonList(new RangeRouteValue<>("create_time", "t_order", rangeValue));
         Collection<String> actual = shardingStrategy.doSharding(availableTargetNames, shardingValues, new ConfigurationProperties(new Properties()));
         assertThat(actual.size(), is(3));
         assertTrue(actual.contains("t_order_1"));
@@ -102,9 +102,9 @@ public final class DatetimeShardingAlgorithmTest {
     
     @Test
     public void assertRangeDoShardingWithoutLowerBound() {
-        List<String> availableTargetNames = Lists.newArrayList("t_order_0", "t_order_1", "t_order_2", "t_order_3");
+        List<String> availableTargetNames = Arrays.asList("t_order_0", "t_order_1", "t_order_2", "t_order_3");
         Range<String> rangeValue = Range.lessThan("2020-01-01 00:00:11");
-        List<RouteValue> shardingValues = Lists.newArrayList(new RangeRouteValue<>("create_time", "t_order", rangeValue));
+        List<RouteValue> shardingValues = Collections.singletonList(new RangeRouteValue<>("create_time", "t_order", rangeValue));
         Collection<String> actual = shardingStrategy.doSharding(availableTargetNames, shardingValues, new ConfigurationProperties(new Properties()));
         assertThat(actual.size(), is(4));
         assertTrue(actual.contains("t_order_0"));
@@ -115,9 +115,9 @@ public final class DatetimeShardingAlgorithmTest {
     
     @Test
     public void assertRangeDoShardingWithoutUpperBound() {
-        List<String> availableTargetNames = Lists.newArrayList("t_order_0", "t_order_1", "t_order_2", "t_order_3", "t_order_4", "t_order_5");
+        List<String> availableTargetNames = Arrays.asList("t_order_0", "t_order_1", "t_order_2", "t_order_3", "t_order_4", "t_order_5");
         Range<String> rangeValue = Range.greaterThan("2020-01-01 00:00:09");
-        List<RouteValue> shardingValues = Lists.newArrayList(new RangeRouteValue<>("create_time", "t_order", rangeValue));
+        List<RouteValue> shardingValues = Collections.singletonList(new RangeRouteValue<>("create_time", "t_order", rangeValue));
         Collection<String> actual = shardingStrategy.doSharding(availableTargetNames, shardingValues, new ConfigurationProperties(new Properties()));
         assertThat(actual.size(), is(3));
         assertTrue(actual.contains("t_order_3"));
@@ -127,10 +127,10 @@ public final class DatetimeShardingAlgorithmTest {
     
     @Test
     public void assertGetAutoTablesAmount() {
-        DatetimeShardingAlgorithm shardingAlgorithm = new DatetimeShardingAlgorithm();
-        shardingAlgorithm.getProps().setProperty(DatetimeShardingAlgorithm.DATETIME_LOWER, "2020-01-01 00:00:00");
-        shardingAlgorithm.getProps().setProperty(DatetimeShardingAlgorithm.DATETIME_UPPER, "2021-01-01 00:00:00");
-        shardingAlgorithm.getProps().setProperty(DatetimeShardingAlgorithm.SHARDING_SECONDS_KEY, "86400");
+        FixedIntervalShardingAlgorithm shardingAlgorithm = new FixedIntervalShardingAlgorithm();
+        shardingAlgorithm.getProps().setProperty("datetime.lower", "2020-01-01 00:00:00");
+        shardingAlgorithm.getProps().setProperty("datetime.upper", "2021-01-01 00:00:00");
+        shardingAlgorithm.getProps().setProperty("sharding.seconds", "86400");
         shardingAlgorithm.init();
         assertThat(shardingAlgorithm.getAutoTablesAmount(), is(368));
     }
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/test/java/org/apache/shardingsphere/sharding/strategy/algorithm/sharding/HashShardingAlgorithmTest.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/test/java/org/apache/shardingsphere/sharding/strategy/algorithm/sharding/HashModShardingAlgorithmTest.java
similarity index 90%
rename from shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/test/java/org/apache/shardingsphere/sharding/strategy/algorithm/sharding/HashShardingAlgorithmTest.java
rename to shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/test/java/org/apache/shardingsphere/sharding/strategy/algorithm/sharding/HashModShardingAlgorithmTest.java
index 8688dad..6af6fb6 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/test/java/org/apache/shardingsphere/sharding/strategy/algorithm/sharding/HashShardingAlgorithmTest.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/test/java/org/apache/shardingsphere/sharding/strategy/algorithm/sharding/HashModShardingAlgorithmTest.java
@@ -20,6 +20,7 @@ package org.apache.shardingsphere.sharding.strategy.algorithm.sharding;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Range;
 import org.apache.shardingsphere.infra.config.properties.ConfigurationProperties;
+import org.apache.shardingsphere.sharding.strategy.algorithm.sharding.mod.HashModShardingAlgorithm;
 import org.apache.shardingsphere.sharding.strategy.route.standard.StandardShardingStrategy;
 import org.apache.shardingsphere.sharding.strategy.route.value.ListRouteValue;
 import org.apache.shardingsphere.sharding.strategy.route.value.RangeRouteValue;
@@ -35,14 +36,14 @@ import static org.hamcrest.CoreMatchers.is;
 import static org.junit.Assert.assertThat;
 import static org.junit.Assert.assertTrue;
 
-public final class HashShardingAlgorithmTest {
+public final class HashModShardingAlgorithmTest {
     
     private StandardShardingStrategy shardingStrategy;
     
     @Before
     public void setup() {
-        HashShardingAlgorithm shardingAlgorithm = new HashShardingAlgorithm();
-        shardingAlgorithm.getProps().setProperty(HashShardingAlgorithm.SHARDING_COUNT_KEY, "4");
+        HashModShardingAlgorithm shardingAlgorithm = new HashModShardingAlgorithm();
+        shardingAlgorithm.getProps().setProperty("sharding.count", "4");
         shardingAlgorithm.init();
         shardingStrategy = new StandardShardingStrategy("order_type", shardingAlgorithm);
     }
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/test/java/org/apache/shardingsphere/sharding/strategy/algorithm/sharding/ModuloShardingAlgorithmTest.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/test/java/org/apache/shardingsphere/sharding/strategy/algorithm/sharding/ModShardingAlgorithmTest.java
similarity index 92%
rename from shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/test/java/org/apache/shardingsphere/sharding/strategy/algorithm/sharding/ModuloShardingAlgorithmTest.java
rename to shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/test/java/org/apache/shardingsphere/sharding/strategy/algorithm/sharding/ModShardingAlgorithmTest.java
index d2858b8..fa9c9d0 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/test/java/org/apache/shardingsphere/sharding/strategy/algorithm/sharding/ModuloShardingAlgorithmTest.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/test/java/org/apache/shardingsphere/sharding/strategy/algorithm/sharding/ModShardingAlgorithmTest.java
@@ -20,6 +20,7 @@ package org.apache.shardingsphere.sharding.strategy.algorithm.sharding;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Range;
 import org.apache.shardingsphere.infra.config.properties.ConfigurationProperties;
+import org.apache.shardingsphere.sharding.strategy.algorithm.sharding.mod.ModShardingAlgorithm;
 import org.apache.shardingsphere.sharding.strategy.route.standard.StandardShardingStrategy;
 import org.apache.shardingsphere.sharding.strategy.route.value.ListRouteValue;
 import org.apache.shardingsphere.sharding.strategy.route.value.RangeRouteValue;
@@ -35,14 +36,14 @@ import static org.hamcrest.CoreMatchers.is;
 import static org.junit.Assert.assertThat;
 import static org.junit.Assert.assertTrue;
 
-public final class ModuloShardingAlgorithmTest {
+public final class ModShardingAlgorithmTest {
     
     private StandardShardingStrategy shardingStrategy;
     
     @Before
     public void setup() {
-        ModuloShardingAlgorithm shardingAlgorithm = new ModuloShardingAlgorithm();
-        shardingAlgorithm.getProps().setProperty(ModuloShardingAlgorithm.SHARDING_COUNT_KEY, "4");
+        ModShardingAlgorithm shardingAlgorithm = new ModShardingAlgorithm();
+        shardingAlgorithm.getProps().setProperty("sharding.count", "4");
         shardingAlgorithm.init();
         shardingStrategy = new StandardShardingStrategy("order_id", shardingAlgorithm);
     }
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/test/java/org/apache/shardingsphere/sharding/strategy/algorithm/sharding/CustomDateTimeShardingAlgorithmTest.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/test/java/org/apache/shardingsphere/sharding/strategy/algorithm/sharding/MutableIntervalShardingAlgorithmTest.java
similarity index 95%
rename from shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/test/java/org/apache/shardingsphere/sharding/strategy/algorithm/sharding/CustomDateTimeShardingAlgorithmTest.java
rename to shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/test/java/org/apache/shardingsphere/sharding/strategy/algorithm/sharding/MutableIntervalShardingAlgorithmTest.java
index 1d96d5b..ba7f653 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/test/java/org/apache/shardingsphere/sharding/strategy/algorithm/sharding/CustomDateTimeShardingAlgorithmTest.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/test/java/org/apache/shardingsphere/sharding/strategy/algorithm/sharding/MutableIntervalShardingAlgorithmTest.java
@@ -20,6 +20,7 @@ package org.apache.shardingsphere.sharding.strategy.algorithm.sharding;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Range;
 import org.apache.shardingsphere.infra.config.properties.ConfigurationProperties;
+import org.apache.shardingsphere.sharding.strategy.algorithm.sharding.datetime.MutableIntervalShardingAlgorithm;
 import org.apache.shardingsphere.sharding.strategy.route.standard.StandardShardingStrategy;
 import org.apache.shardingsphere.sharding.strategy.route.value.ListRouteValue;
 import org.apache.shardingsphere.sharding.strategy.route.value.RangeRouteValue;
@@ -39,19 +40,16 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertThat;
 import static org.junit.Assert.assertTrue;
 
-/**
- * datetime sharding algorithm test.
- */
-public class CustomDateTimeShardingAlgorithmTest {
-
+public final class MutableIntervalShardingAlgorithmTest {
+    
     private final List<String> availableTablesForMonthStrategy = new ArrayList<>();
-
+    
     private final List<String> availableTablesForQuarterStrategy = new ArrayList<>();
-
+    
     private StandardShardingStrategy shardingStrategyByMonth;
-
+    
     private StandardShardingStrategy shardingStrategyByQuarter;
-
+    
     @Before
     public void setup() {
         initShardStrategyByMonth();
@@ -124,7 +122,7 @@ public class CustomDateTimeShardingAlgorithmTest {
     }
     
     private void initShardStrategyByQuarter() {
-        CustomDateTimeShardingAlgorithm shardingAlgorithm = new CustomDateTimeShardingAlgorithm();
+        MutableIntervalShardingAlgorithm shardingAlgorithm = new MutableIntervalShardingAlgorithm();
         shardingAlgorithm.getProps().setProperty("datetime.format", "yyyy-MM-dd HH:mm:ss");
         shardingAlgorithm.getProps().setProperty("table.suffix.format", "yyyyQQ");
         shardingAlgorithm.getProps().setProperty("datetime.lower", "2016-01-01 00:00:00.000");
@@ -141,7 +139,7 @@ public class CustomDateTimeShardingAlgorithmTest {
     }
     
     private void initShardStrategyByMonth() {
-        CustomDateTimeShardingAlgorithm shardingAlgorithm = new CustomDateTimeShardingAlgorithm();
+        MutableIntervalShardingAlgorithm shardingAlgorithm = new MutableIntervalShardingAlgorithm();
         shardingAlgorithm.getProps().setProperty("datetime.format", "yyyy-MM-dd HH:mm:ss");
         shardingAlgorithm.getProps().setProperty("table.suffix.format", "yyyyMM");
         shardingAlgorithm.getProps().setProperty("datetime.lower", "2016-01-01 00:00:00.000");
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/test/java/org/apache/shardingsphere/sharding/strategy/algorithm/sharding/range/CustomRangeShardingAlgorithmTest.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/test/java/org/apache/shardingsphere/sharding/strategy/algorithm/sharding/range/BoundaryBasedRangeShardingAlgorithmTest.java
similarity index 87%
rename from shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/test/java/org/apache/shardingsphere/sharding/strategy/algorithm/sharding/range/CustomRangeShardingAlgorithmTest.java
rename to shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/test/java/org/apache/shardingsphere/sharding/strategy/algorithm/sharding/range/BoundaryBasedRangeShardingAlgorithmTest.java
index c5d92a1..ca6cd0c 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/test/java/org/apache/shardingsphere/sharding/strategy/algorithm/sharding/range/CustomRangeShardingAlgorithmTest.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/test/java/org/apache/shardingsphere/sharding/strategy/algorithm/sharding/range/BoundaryBasedRangeShardingAlgorithmTest.java
@@ -35,14 +35,14 @@ import static org.hamcrest.CoreMatchers.is;
 import static org.junit.Assert.assertThat;
 import static org.junit.Assert.assertTrue;
 
-public final class CustomRangeShardingAlgorithmTest {
+public final class BoundaryBasedRangeShardingAlgorithmTest {
     
     private StandardShardingStrategy shardingStrategy;
     
     @Before
     public void setUp() {
-        CustomRangeShardingAlgorithm shardingAlgorithm = new CustomRangeShardingAlgorithm();
-        shardingAlgorithm.getProps().setProperty(CustomRangeShardingAlgorithm.SHARDING_RANGES_KEY, "1,5,10");
+        BoundaryBasedRangeShardingAlgorithm shardingAlgorithm = new BoundaryBasedRangeShardingAlgorithm();
+        shardingAlgorithm.getProps().setProperty("sharding.ranges", "1,5,10");
         shardingAlgorithm.init();
         shardingStrategy = new StandardShardingStrategy("order_id", shardingAlgorithm);
     }
@@ -71,8 +71,8 @@ public final class CustomRangeShardingAlgorithmTest {
     
     @Test
     public void assertGetAutoTablesAmount() {
-        CustomRangeShardingAlgorithm shardingAlgorithm = new CustomRangeShardingAlgorithm();
-        shardingAlgorithm.getProps().setProperty(CustomRangeShardingAlgorithm.SHARDING_RANGES_KEY, "1,5,10");
+        BoundaryBasedRangeShardingAlgorithm shardingAlgorithm = new BoundaryBasedRangeShardingAlgorithm();
+        shardingAlgorithm.getProps().setProperty("sharding.ranges", "1,5,10");
         shardingAlgorithm.init();
         assertThat(shardingAlgorithm.getAutoTablesAmount(), is(4));
     }
diff --git a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/test/java/org/apache/shardingsphere/sharding/strategy/algorithm/sharding/range/StandardRangeShardingAlgorithmTest.java b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/test/java/org/apache/shardingsphere/sharding/strategy/algorithm/sharding/range/VolumeBasedRangeShardingAlgorithmTest.java
similarity index 84%
rename from shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/test/java/org/apache/shardingsphere/sharding/strategy/algorithm/sharding/range/StandardRangeShardingAlgorithmTest.java
rename to shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/test/java/org/apache/shardingsphere/sharding/strategy/algorithm/sharding/range/VolumeBasedRangeShardingAlgorithmTest.java
index 641530a..dc67e0f 100644
--- a/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/test/java/org/apache/shardingsphere/sharding/strategy/algorithm/sharding/range/StandardRangeShardingAlgorithmTest.java
+++ b/shardingsphere-features/shardingsphere-sharding/shardingsphere-sharding-common/src/test/java/org/apache/shardingsphere/sharding/strategy/algorithm/sharding/range/VolumeBasedRangeShardingAlgorithmTest.java
@@ -35,16 +35,16 @@ import static org.hamcrest.CoreMatchers.is;
 import static org.junit.Assert.assertThat;
 import static org.junit.Assert.assertTrue;
 
-public final class StandardRangeShardingAlgorithmTest {
+public final class VolumeBasedRangeShardingAlgorithmTest {
     
     private StandardShardingStrategy shardingStrategy;
     
     @Before
     public void setUp() {
-        StandardRangeShardingAlgorithm shardingAlgorithm = new StandardRangeShardingAlgorithm();
-        shardingAlgorithm.getProps().setProperty(StandardRangeShardingAlgorithm.RANGE_LOWER_KEY, "10");
-        shardingAlgorithm.getProps().setProperty(StandardRangeShardingAlgorithm.RANGE_UPPER_KEY, "45");
-        shardingAlgorithm.getProps().setProperty(StandardRangeShardingAlgorithm.SHARDING_VOLUME_KEY, "10");
+        VolumeBasedRangeShardingAlgorithm shardingAlgorithm = new VolumeBasedRangeShardingAlgorithm();
+        shardingAlgorithm.getProps().setProperty("range.lower", "10");
+        shardingAlgorithm.getProps().setProperty("range.upper", "45");
+        shardingAlgorithm.getProps().setProperty("sharding.volume", "10");
         shardingAlgorithm.init();
         shardingStrategy = new StandardShardingStrategy("order_id", shardingAlgorithm);
     }
@@ -96,10 +96,10 @@ public final class StandardRangeShardingAlgorithmTest {
     
     @Test
     public void assertGetAutoTablesAmount() {
-        StandardRangeShardingAlgorithm shardingAlgorithm = new StandardRangeShardingAlgorithm();
-        shardingAlgorithm.getProps().setProperty(StandardRangeShardingAlgorithm.RANGE_LOWER_KEY, "10");
-        shardingAlgorithm.getProps().setProperty(StandardRangeShardingAlgorithm.RANGE_UPPER_KEY, "45");
-        shardingAlgorithm.getProps().setProperty(StandardRangeShardingAlgorithm.SHARDING_VOLUME_KEY, "10");
+        VolumeBasedRangeShardingAlgorithm shardingAlgorithm = new VolumeBasedRangeShardingAlgorithm();
+        shardingAlgorithm.getProps().setProperty("range.lower", "10");
+        shardingAlgorithm.getProps().setProperty("range.upper", "45");
+        shardingAlgorithm.getProps().setProperty("sharding.volume", "10");
         shardingAlgorithm.init();
         assertThat(shardingAlgorithm.getAutoTablesAmount(), is(6));
     }