This is an automated email from the ASF dual-hosted git repository.
leonbao pushed a commit to branch json_split
in repository https://gitbox.apache.org/repos/asf/dolphinscheduler.git
The following commit(s) were added to refs/heads/json_split by this push:
new 49b2346 update SnowFlake (#5321)
49b2346 is described below
commit 49b234609ac733219bcca2191f69a659fdbd6977
Author: JinyLeeChina <[email protected]>
AuthorDate: Mon Apr 19 23:12:09 2021 +0800
update SnowFlake (#5321)
Co-authored-by: JinyLeeChina <[email protected]>
---
.../service/impl/ProcessDefinitionServiceImpl.java | 2 +-
.../dolphinscheduler/common/model/TaskNode.java | 6 +++---
.../common/utils/SnowFlakeUtils.java | 22 +++++-----------------
.../src/main/resources/common.properties | 2 --
.../dolphinscheduler/dao/utils/DagHelper.java | 2 +-
.../server/master/runner/MasterExecThread.java | 2 +-
.../service/process/ProcessService.java | 8 ++++----
7 files changed, 15 insertions(+), 29 deletions(-)
diff --git
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/ProcessDefinitionServiceImpl.java
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/ProcessDefinitionServiceImpl.java
index 396d59c..693a858 100644
---
a/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/ProcessDefinitionServiceImpl.java
+++
b/dolphinscheduler-api/src/main/java/org/apache/dolphinscheduler/api/service/impl/ProcessDefinitionServiceImpl.java
@@ -1414,7 +1414,7 @@ public class ProcessDefinitionServiceImpl extends
BaseServiceImpl implements Pro
((ObjectNode) locationsJN.get(id)).put("name", newName);
taskNode.setName(taskNode.getName() + suffix);
- taskNode.setCode("0");
+ taskNode.setCode(0L);
});
processData.setTasks(taskNodeList);
String processDefinitionJson = JSONUtils.toJsonString(processData);
diff --git
a/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/model/TaskNode.java
b/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/model/TaskNode.java
index 404b1b2..89efe2e 100644
---
a/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/model/TaskNode.java
+++
b/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/model/TaskNode.java
@@ -42,7 +42,7 @@ public class TaskNode {
/**
* task node code
*/
- private String code;
+ private Long code;
/**
* task node version
@@ -329,11 +329,11 @@ public class TaskNode {
this.delayTime = delayTime;
}
- public String getCode() {
+ public Long getCode() {
return code;
}
- public void setCode(String code) {
+ public void setCode(Long code) {
this.code = code;
}
diff --git
a/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/SnowFlakeUtils.java
b/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/SnowFlakeUtils.java
index 4d31bbe..7f70bac 100644
---
a/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/SnowFlakeUtils.java
+++
b/dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/SnowFlakeUtils.java
@@ -17,36 +17,25 @@
package org.apache.dolphinscheduler.common.utils;
-import org.apache.dolphinscheduler.common.Constants;
-
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.Objects;
public class SnowFlakeUtils {
// start timestamp
- private static final long START_TIMESTAMP = 1609430400000L; //2021-01-01
+ private static final long START_TIMESTAMP = 1609430400L; //2021-01-01
// Number of digits
- private static final long SEQUENCE_BIT = 12;
- private static final long MACHINE_BIT = 5;
- private static final long DATA_CENTER_BIT = 5;
- // Maximum value
- private static final long MAX_DATA_CENTER_NUM = ~(-1L << DATA_CENTER_BIT);
+ private static final long SEQUENCE_BIT = 13;
+ private static final long MACHINE_BIT = 2;
private static final long MAX_SEQUENCE = ~(-1L << SEQUENCE_BIT);
// The displacement to the left
private static final long MACHINE_LEFT = SEQUENCE_BIT;
- private static final long DATA_CENTER_LEFT = SEQUENCE_BIT + MACHINE_BIT;
- private static final long TIMESTAMP_LEFT = DATA_CENTER_LEFT +
DATA_CENTER_BIT;
- private final int dataCenterId;
+ private static final long TIMESTAMP_LEFT = SEQUENCE_BIT + MACHINE_BIT;
private final int machineId;
private long sequence = 0L;
private long lastTimestamp = -1L;
private SnowFlakeUtils() throws SnowFlakeException {
- this.dataCenterId =
PropertyUtils.getInt(Constants.SNOW_FLAKE_DATA_CENTER_ID, 1);
- if (dataCenterId > MAX_DATA_CENTER_NUM || dataCenterId < 0) {
- throw new IllegalArgumentException(String.format("dataCenterId
can't be greater than %d or less than 0", MAX_DATA_CENTER_NUM));
- }
try {
this.machineId =
Math.abs(Objects.hash(InetAddress.getLocalHost().getHostName())) % 32;
} catch (UnknownHostException e) {
@@ -78,7 +67,6 @@ public class SnowFlakeUtils {
}
lastTimestamp = currStmp;
return (currStmp - START_TIMESTAMP) << TIMESTAMP_LEFT
- | dataCenterId << DATA_CENTER_LEFT
| machineId << MACHINE_LEFT
| sequence;
}
@@ -92,7 +80,7 @@ public class SnowFlakeUtils {
}
private long nowTimestamp() {
- return System.currentTimeMillis();
+ return System.currentTimeMillis() / 1000;
}
public static class SnowFlakeException extends Exception {
diff --git a/dolphinscheduler-common/src/main/resources/common.properties
b/dolphinscheduler-common/src/main/resources/common.properties
index b113e8b..1377335 100644
--- a/dolphinscheduler-common/src/main/resources/common.properties
+++ b/dolphinscheduler-common/src/main/resources/common.properties
@@ -79,8 +79,6 @@ datasource.encryption.salt=!@#$%^&*
# Network IP gets priority, default inner outer
#dolphin.scheduler.network.priority.strategy=default
-# 0<dataCenterId<32
-#data.center.id=1
# use sudo or not, if set true ,executing user is tenant user and deploy user
need sudo permissions ; if set false, executing user is the deploy user, don't
need sudo permissions.
sudo.enable=true
diff --git
a/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/utils/DagHelper.java
b/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/utils/DagHelper.java
index fc5a492..025b825 100644
---
a/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/utils/DagHelper.java
+++
b/dolphinscheduler-dao/src/main/java/org/apache/dolphinscheduler/dao/utils/DagHelper.java
@@ -440,7 +440,7 @@ public class DagHelper {
Map<Long, TaskNode> taskNodeMap = new HashMap<>();
taskNodeList.forEach(taskNode -> {
- taskNodeMap.putIfAbsent(Long.parseLong(taskNode.getCode()),
taskNode);
+ taskNodeMap.putIfAbsent(taskNode.getCode(), taskNode);
});
List<TaskNodeRelation> taskNodeRelations = new ArrayList<>();
diff --git
a/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/master/runner/MasterExecThread.java
b/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/master/runner/MasterExecThread.java
index fc1cc97..23121cb 100644
---
a/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/master/runner/MasterExecThread.java
+++
b/dolphinscheduler-server/src/main/java/org/apache/dolphinscheduler/server/master/runner/MasterExecThread.java
@@ -475,7 +475,7 @@ public class MasterExecThread implements Runnable {
TaskInstance taskInstance = findTaskIfExists(nodeName);
if (taskInstance == null) {
taskInstance = new TaskInstance();
- taskInstance.setTaskCode(Long.parseLong(taskNode.getCode()));
+ taskInstance.setTaskCode(taskNode.getCode());
taskInstance.setTaskDefinitionVersion(taskNode.getVersion());
// task name
taskInstance.setName(nodeName);
diff --git
a/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/process/ProcessService.java
b/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/process/ProcessService.java
index 20c88a8..44fa494 100644
---
a/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/process/ProcessService.java
+++
b/dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/process/ProcessService.java
@@ -2325,7 +2325,7 @@ public class ProcessService {
}
Map<String, TaskDefinition> taskDefinitionMap = new HashMap<>();
for (TaskNode taskNode : taskNodes) {
- TaskDefinition taskDefinition =
taskDefinitionMapper.queryByDefinitionCode(StringUtils.strDigitToLong(taskNode.getCode(),
-1L));
+ TaskDefinition taskDefinition =
taskDefinitionMapper.queryByDefinitionCode(taskNode.getCode());
if (taskDefinition == null) {
try {
long code = SnowFlakeUtils.getInstance().nextId();
@@ -2484,7 +2484,7 @@ public class ProcessService {
taskNodeMap.compute(processTaskRelation.getPostTaskCode(), (k, v)
-> {
if (v == null) {
v = new TaskNode();
- v.setCode(processTaskRelation.getPostTaskCode() + "");
+ v.setCode(processTaskRelation.getPostTaskCode());
v.setVersion(processTaskRelation.getPostTaskVersion());
v.setConditionResult(processTaskRelation.getConditionParams());
List<PreviousTaskNode> preTaskNodeList = new ArrayList<>();
@@ -2504,7 +2504,7 @@ public class ProcessService {
taskNodeMap.forEach((k, v) -> {
TaskDefinitionLog taskDefinitionLog = taskDefinitionLogMap.get(k);
v.setId(locationMap.get(taskDefinitionLog.getName()));
- v.setCode(taskDefinitionLog.getCode() + "");
+ v.setCode(taskDefinitionLog.getCode());
v.setName(taskDefinitionLog.getName());
v.setDesc(taskDefinitionLog.getDescription());
v.setType(taskDefinitionLog.getTaskType().toUpperCase());
@@ -2547,7 +2547,7 @@ public class ProcessService {
taskRelationList.forEach(relation ->
taskCodeMap.putIfAbsent(relation.getPostTaskCode(),
relation.getPostTaskVersion()));
- taskNode.setCode(String.valueOf(taskDefinition.getCode()));
+ taskNode.setCode(taskDefinition.getCode());
taskNode.setVersion(taskDefinition.getVersion());
taskNode.setName(taskDefinition.getName());
taskNode.setName(taskDefinition.getName());