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));
}