This is an automated email from the ASF dual-hosted git repository.
jiafengzheng pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-doris-manager.git
The following commit(s) were added to refs/heads/master by this push:
new cea4820 Fix the bug that the agent installation is inconsistent with
the heartbeat reporting transaction data (#27)
cea4820 is described below
commit cea482088f88ce8d8457583e2e1a3960628c3800
Author: songchuanyuan <[email protected]>
AuthorDate: Thu Mar 31 17:24:00 2022 +0800
Fix the bug that the agent installation is inconsistent with the heartbeat
reporting transaction data (#27)
Fix the bug that the agent installation is inconsistent with the heartbeat
reporting transaction data (#27)
---
.../manager/DorisClusterInstanceManager.java | 15 ++++++++++--
.../stack/control/manager/DorisClusterManager.java | 27 ++++++++++++++++++++++
.../control/manager/DorisClusterModuleManager.java | 11 ++++++++-
.../control/manager/ResourceClusterManager.java | 10 ++++++++
.../manager/ResourceNodeAndAgentManager.java | 5 ++++
.../DorisClusterTakeOverRequestHandler.java | 18 ++++++++++++++-
.../stack/service/control/DorisClusterService.java | 3 ---
7 files changed, 82 insertions(+), 7 deletions(-)
diff --git
a/manager/dm-server/src/main/java/org/apache/doris/stack/control/manager/DorisClusterInstanceManager.java
b/manager/dm-server/src/main/java/org/apache/doris/stack/control/manager/DorisClusterInstanceManager.java
index 2cf00f4..1452681 100644
---
a/manager/dm-server/src/main/java/org/apache/doris/stack/control/manager/DorisClusterInstanceManager.java
+++
b/manager/dm-server/src/main/java/org/apache/doris/stack/control/manager/DorisClusterInstanceManager.java
@@ -51,6 +51,7 @@ public class DorisClusterInstanceManager {
public long initOperation(long clusterId, ClusterModuleEntity moudle, long
nodeId) {
// TODO:Judge whether node can deploy this instance
+ log.info("create a new instance for cluster {} moudle {} on node {}",
clusterId, moudle.getId(), nodeId);
ResourceNodeEntity nodeEntity = nodeRepository.findById(nodeId).get();
ClusterInstanceEntity instanceEntity = new
ClusterInstanceEntity(clusterId, moudle.getId(), nodeId,
@@ -63,10 +64,11 @@ public class DorisClusterInstanceManager {
long requestId) {
// TODO:Judge whether instance can be deploy
// TODO: Step fallback operation
-
+ log.info("deploy instance {}", instance.getId());
long eventId = instance.getCurrentEventId();
if (eventId < 1L) {
// First install instance operation
+ log.debug("first deploy instance {}", instance.getId());
HeartBeatEventEntity eventEntity = new
HeartBeatEventEntity(HeartBeatEventType.INSTANCE_INSTALL.name(),
HeartBeatEventResultType.INIT.name(),
JSON.toJSONString(configInfo), requestId);
@@ -75,6 +77,7 @@ public class DorisClusterInstanceManager {
instance.setCurrentEventId(newEventEntity.getId());
clusterInstanceRepository.save(instance);
} else {
+ log.debug("deploy instance {} heart beat event {} exist",
instance.getId(), eventId);
HeartBeatEventEntity eventEntity =
heartBeatEventRepository.findById(eventId).get();
// TODO:exception
if
(!eventEntity.getType().equals(HeartBeatEventType.INSTANCE_INSTALL.name())) {
@@ -95,9 +98,11 @@ public class DorisClusterInstanceManager {
public void checkDeployOperation(ClusterInstanceEntity instance,
InstanceDeployCheckEventConfigInfo configInfo,
long requestId) {
+ log.info("check instance {} deploy", instance.getId());
long eventId = instance.getCurrentEventId();
if (eventId < 1L) {
- // First install instance operation
+ // First check instance install operation
+ log.debug("first check instance {} deploy", instance.getId());
HeartBeatEventEntity eventEntity = new
HeartBeatEventEntity(HeartBeatEventType.INSTANCE_DEPLOY_CHECK.name(),
HeartBeatEventResultType.INIT.name(),
JSON.toJSONString(configInfo), requestId);
@@ -106,6 +111,7 @@ public class DorisClusterInstanceManager {
instance.setCurrentEventId(newEventEntity.getId());
clusterInstanceRepository.save(instance);
} else {
+ log.debug("check instance {} deploy heart beat event {} exist",
instance.getId(), eventId);
HeartBeatEventEntity eventEntity =
heartBeatEventRepository.findById(eventId).get();
// TODO:exception
if
(!eventEntity.getType().equals(HeartBeatEventType.INSTANCE_DEPLOY_CHECK.name()))
{
@@ -126,6 +132,7 @@ public class DorisClusterInstanceManager {
// Check whether instance is installed successfully
public boolean checkInstanceOperation(ClusterInstanceEntity instance) {
+ log.info("check instance {} has been deployed", instance.getId());
long eventId = instance.getCurrentEventId();
if (eventId < 1L) {
return false;
@@ -146,23 +153,27 @@ public class DorisClusterInstanceManager {
public void startOperation(ClusterInstanceEntity instance,
InstanceStartEventConfigInfo configInfo,
long requestId) {
+ log.info("start instance {} for request {}", instance.getId(),
requestId);
saveInstanceNewHeartBeat(instance, JSON.toJSONString(configInfo),
HeartBeatEventType.INSTANCE_START, requestId);
}
public void stopOperation(ClusterInstanceEntity instance,
InstanceStopEventConfigInfo configInfo,
long requestId) {
+ log.info("stop instance {} for request {}", instance.getId(),
requestId);
saveInstanceNewHeartBeat(instance, JSON.toJSONString(configInfo),
HeartBeatEventType.INSTANCE_STOP, requestId);
}
public void restartOperation(ClusterInstanceEntity instance,
InstanceRestartEventConfigInfo configInfo,
long requestId) {
+ log.info("restart instance {} for request {}", instance.getId(),
requestId);
saveInstanceNewHeartBeat(instance, JSON.toJSONString(configInfo),
HeartBeatEventType.INSTANCE_RESTART, requestId);
}
public void deleteOperation(ClusterInstanceEntity instance) {
+ log.info("delete instance {}", instance.getId());
clusterInstanceRepository.delete(instance);
}
diff --git
a/manager/dm-server/src/main/java/org/apache/doris/stack/control/manager/DorisClusterManager.java
b/manager/dm-server/src/main/java/org/apache/doris/stack/control/manager/DorisClusterManager.java
index 40bc6bf..de5c816 100644
---
a/manager/dm-server/src/main/java/org/apache/doris/stack/control/manager/DorisClusterManager.java
+++
b/manager/dm-server/src/main/java/org/apache/doris/stack/control/manager/DorisClusterManager.java
@@ -40,6 +40,7 @@ import org.apache.doris.stack.model.request.space.ClusterType;
import org.apache.doris.stack.model.request.space.NewUserSpaceCreateReq;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
+import org.springframework.transaction.annotation.Transactional;
import java.sql.Statement;
import java.util.ArrayList;
@@ -78,10 +79,14 @@ public class DorisClusterManager {
@Autowired
private JdbcSampleClient jdbcClient;
+ // Ensure the data atomicity of creating user space, so add transactions
+ @Transactional
public long initOperation(NewUserSpaceCreateReq spaceInfo, String creator)
throws Exception {
return userSpaceComponent.create(spaceInfo, creator);
}
+ // Ensure the atomicity of data in user space, so add transactions
+ @Transactional
public void updateClusterOperation(CoreUserEntity user, long clusterId,
NewUserSpaceCreateReq spaceInfo) throws
Exception {
userSpaceComponent.update(user, clusterId, spaceInfo);
@@ -90,17 +95,22 @@ public class DorisClusterManager {
public void createClusterResourceOperation(CoreUserEntity user,
ClusterInfoEntity clusterInfoEntity,
PMResourceClusterAccessInfo
authInfo,
List<String> hosts) {
+ log.info("Create cluster {} resource cluster operation.",
clusterInfoEntity.getId());
long resourceClusterId = clusterInfoEntity.getResourceClusterId();
if (resourceClusterId < 1L) {
+ log.debug("Cluster {} resource cluster not exist, add a new one.",
clusterInfoEntity.getId());
resourceClusterId =
resourceClusterManager.initOperation(user.getId(), authInfo, hosts);
clusterInfoEntity.setResourceClusterId(resourceClusterId);
clusterRepository.save(clusterInfoEntity);
} else {
+ log.debug("Cluster {} resource cluster {} already exist, update
it.",
+ clusterInfoEntity.getId(), resourceClusterId);
resourceClusterManager.updateOperation(resourceClusterId,
user.getId(), authInfo, hosts);
}
}
public void configClusterResourceOperation(ClusterInfoEntity
clusterInfoEntity, String packageInfo, String installInfo) {
+ log.info("Config cluster {} resource info operation.",
clusterInfoEntity.getId());
clusterInfoEntity.setInstallInfo(installInfo);
clusterRepository.save(clusterInfoEntity);
@@ -108,6 +118,7 @@ public class DorisClusterManager {
}
public void startClusterResourceOperation(ClusterInfoEntity
clusterInfoEntity, long requestId) {
+ log.info("Start cluster {} resource cluster operation.",
clusterInfoEntity.getId());
resourceClusterManager.startOperation(clusterInfoEntity.getResourceClusterId(),
requestId);
}
@@ -115,6 +126,7 @@ public class DorisClusterManager {
// Step fallback operation
// If you have done scheduling and allocation before, you need to
delete the created data.
// If not, do nothing directly
+ log.info("Schedule cluster {} operation.", clusterId);
deleteClusterOperation(clusterId);
// Add broker node installation information, which is available for
each node by default
@@ -138,6 +150,7 @@ public class DorisClusterManager {
}
public void configClusterOperation(ClusterInfoEntity clusterInfoEntity,
List<DorisClusterModuleDeployConfig> deployConfigs) {
+ log.info("Config cluster {} operation.", clusterInfoEntity.getId());
ResourceClusterEntity resourceClusterEntity =
resourceClusterRepository.findById(clusterInfoEntity.getResourceClusterId()).get();
@@ -150,6 +163,7 @@ public class DorisClusterManager {
public void deployClusterOperation(long clusterId, long requestId) {
// TODO:Step fallback operation
+ log.info("Deploy cluster {} operation.", clusterId);
List<ClusterModuleEntity> moduleEntities =
moduleRepository.getByClusterId(clusterId);
@@ -166,6 +180,7 @@ public class DorisClusterManager {
* @throws Exception
*/
public ClusterCreateReq deployClusterAfterOperation(long clusterId, String
newPassword) throws Exception {
+ log.info("Deploy cluster {} after operation.", clusterId);
List<ClusterModuleServiceEntity> serviceEntities =
serviceRepository.getByClusterId(clusterId);
int feJdbcPort = 0;
@@ -199,10 +214,12 @@ public class DorisClusterManager {
}
}
+ log.debug("Get doris jdbc connection");
// get doris jdbc connection
String feHost = feAccessInfo.get(0);
Statement stmt = jdbcClient.getStatement(feHost, feJdbcPort,
ServerAndAgentConstant.USER_ROOT, "");
// add fe Observer
+ log.debug("Add fe Observers {}", feObserverInfo);
List<String> feObserverHostsPorts = new ArrayList<>();
for (String feObserverHost : feObserverInfo) {
String feObserverHostsPort = feObserverHost + ":" + feEditPort;
@@ -211,6 +228,7 @@ public class DorisClusterManager {
jdbcClient.addFeObserver(feObserverHostsPorts, stmt);
// add be
+ log.debug("Add be {}", beAccessInfo);
List<String> beHostsPorts = new ArrayList<>();
for (String beHost : beAccessInfo) {
String beHostsPort = beHost + ":" + beHeartPort;
@@ -219,6 +237,7 @@ public class DorisClusterManager {
jdbcClient.addBe(beHostsPorts, stmt);
// add broker
+ log.debug("Add broker {}", brokerAccessInfo);
List<String> brokerHostsPorts = new ArrayList<>();
for (String brokerHost : brokerAccessInfo) {
String brokerHostsPort = brokerHost + ":" + brokerRpcPort;
@@ -227,6 +246,7 @@ public class DorisClusterManager {
jdbcClient.addBrokerName(brokerHostsPorts, stmt);
// update password
+ log.debug("Update doris root and admin user default password.");
jdbcClient.updateUserPassword(ServerAndAgentConstant.USER_ADMIN,
newPassword, stmt);
jdbcClient.updateUserPassword(ServerAndAgentConstant.USER_ROOT,
newPassword, stmt);
@@ -245,11 +265,13 @@ public class DorisClusterManager {
}
public void clusterAccessOperation(long clusterId, ClusterCreateReq
clusterAccessInfo) throws Exception {
+ log.info("Access cluster {} operation.", clusterId);
ClusterInfoEntity clusterInfo =
clusterRepository.findById(clusterId).get();
userSpaceComponent.clusterAccess(clusterAccessInfo, clusterInfo);
}
public void checkClusterDeployOperation(long clusterId, long requestId)
throws Exception {
+ log.info("Check cluster {} deploy operation.", clusterId);
List<ClusterModuleEntity> moduleEntities =
moduleRepository.getByClusterId(clusterId);
for (ClusterModuleEntity moduleEntity : moduleEntities) {
@@ -258,6 +280,7 @@ public class DorisClusterManager {
}
public void checkClusterInstancesOperation(long clusterId) throws
Exception {
+ log.info("Check cluster {} instances operation.", clusterId);
List<ClusterModuleEntity> moduleEntities =
moduleRepository.getByClusterId(clusterId);
for (ClusterModuleEntity moduleEntity : moduleEntities) {
@@ -266,6 +289,7 @@ public class DorisClusterManager {
}
public void stopClusterOperation(long clusterId, long requestId) throws
Exception {
+ log.info("Stop cluster {} instances operation.", clusterId);
List<ClusterModuleEntity> moduleEntities =
moduleRepository.getByClusterId(clusterId);
for (ClusterModuleEntity moduleEntity : moduleEntities) {
@@ -274,6 +298,7 @@ public class DorisClusterManager {
}
public void startClusterOperation(long clusterId, long requestId) throws
Exception {
+ log.info("Start cluster {} instances operation.", clusterId);
List<ClusterModuleEntity> moduleEntities =
moduleRepository.getByClusterId(clusterId);
for (ClusterModuleEntity moduleEntity : moduleEntities) {
@@ -282,6 +307,7 @@ public class DorisClusterManager {
}
public void reStartClusterOperation(long clusterId, long requestId) throws
Exception {
+ log.info("Restart cluster {} instances operation.", clusterId);
List<ClusterModuleEntity> moduleEntities =
moduleRepository.getByClusterId(clusterId);
for (ClusterModuleEntity moduleEntity : moduleEntities) {
@@ -291,6 +317,7 @@ public class DorisClusterManager {
public void deleteClusterOperation(ClusterInfoEntity clusterInfo)throws
Exception {
long clusterId = clusterInfo.getId();
+ log.info("Delete cluster {} instances operation.", clusterId);
deleteClusterOperation(clusterId);
}
diff --git
a/manager/dm-server/src/main/java/org/apache/doris/stack/control/manager/DorisClusterModuleManager.java
b/manager/dm-server/src/main/java/org/apache/doris/stack/control/manager/DorisClusterModuleManager.java
index 30205de..b68fdeb 100644
---
a/manager/dm-server/src/main/java/org/apache/doris/stack/control/manager/DorisClusterModuleManager.java
+++
b/manager/dm-server/src/main/java/org/apache/doris/stack/control/manager/DorisClusterModuleManager.java
@@ -59,6 +59,7 @@ public class DorisClusterModuleManager {
private DorisClusterInstanceManager instanceManager;
public long initOperation(long clusterId, DorisClusterModuleResourceConfig
resourceConfig) {
+ log.info("create module for cluster {}", clusterId);
ClusterModuleEntity moduleEntity = new ClusterModuleEntity(clusterId,
resourceConfig.getModuleName());
ClusterModuleEntity newModuleEntity =
clusterModuleRepository.save(moduleEntity);
@@ -70,8 +71,8 @@ public class DorisClusterModuleManager {
}
public void configOperation(long clusterId, DorisClusterModuleDeployConfig
deployConfig) {
-
String moduleName = deployConfig.getModuleName();
+ log.info("config module name {} for cluster {}", moduleName,
clusterId);
List<ClusterModuleEntity> moduleEntities =
clusterModuleRepository.getByClusterIdAndModuleName(clusterId, moduleName);
// Step fallback operation
@@ -154,6 +155,7 @@ public class DorisClusterModuleManager {
private void serviceCreateOperation(ClusterModuleEntity module,
Map<String, Integer> serviceNamePorts,
List<String> accessInfo) {
+ log.info("create module {} service", module.getId());
for (String name : serviceNamePorts.keySet()) {
int port = serviceNamePorts.get(name);
ClusterModuleServiceEntity serviceEntity = new
ClusterModuleServiceEntity(name, module.getClusterId(),
@@ -164,6 +166,7 @@ public class DorisClusterModuleManager {
public void deployOperation(ClusterModuleEntity module, long requestId) {
// TODO:Step fallback operation
+ log.info("deploy module {}", module.getId());
List<ClusterInstanceEntity> instanceEntities =
instanceRepository.getByModuleId(module.getId());
DorisClusterModuleDeployConfig deployConfig =
JSON.parseObject(module.getConfig(),
DorisClusterModuleDeployConfig.class);
@@ -186,6 +189,7 @@ public class DorisClusterModuleManager {
public void checkDeployOperation(ClusterModuleEntity module, long
requestId) {
// TODO:Step fallback operation
+ log.info("check module {} deploy for request {}", module.getId(),
requestId);
List<ClusterInstanceEntity> instanceEntities =
instanceRepository.getByModuleId(module.getId());
InstanceDeployCheckEventConfigInfo configInfo = new
InstanceDeployCheckEventConfigInfo();
@@ -198,6 +202,7 @@ public class DorisClusterModuleManager {
}
public void checkInstancesOperation(ClusterModuleEntity module) throws
Exception {
+ log.info("check module {} instances", module.getId());
List<ClusterInstanceEntity> instanceEntities =
instanceRepository.getByModuleId(module.getId());
for (ClusterInstanceEntity instanceEntity : instanceEntities) {
@@ -208,6 +213,7 @@ public class DorisClusterModuleManager {
}
public void stopOperation(ClusterModuleEntity module, long requestId) {
+ log.info("stop module {} for request {}", module.getId(), requestId);
List<ClusterInstanceEntity> instanceEntities =
instanceRepository.getByModuleId(module.getId());
InstanceStopEventConfigInfo configInfo = new
InstanceStopEventConfigInfo();
@@ -220,6 +226,7 @@ public class DorisClusterModuleManager {
}
public void startOperation(ClusterModuleEntity module, long requestId) {
+ log.info("start module {} for request {}", module.getId(), requestId);
List<ClusterInstanceEntity> instanceEntities =
instanceRepository.getByModuleId(module.getId());
InstanceStartEventConfigInfo configInfo = new
InstanceStartEventConfigInfo();
@@ -232,6 +239,7 @@ public class DorisClusterModuleManager {
}
public void restartOperation(ClusterModuleEntity module, long requestId) {
+ log.info("restart module {} for request {}", module.getId(),
requestId);
List<ClusterInstanceEntity> instanceEntities =
instanceRepository.getByModuleId(module.getId());
InstanceRestartEventConfigInfo configInfo = new
InstanceRestartEventConfigInfo();
@@ -244,6 +252,7 @@ public class DorisClusterModuleManager {
}
public void deleteOperation(ClusterModuleEntity module) {
+ log.info("delete module {}", module.getId());
List<ClusterInstanceEntity> instanceEntities =
instanceRepository.getByModuleId(module.getId());
// delete all instances
diff --git
a/manager/dm-server/src/main/java/org/apache/doris/stack/control/manager/ResourceClusterManager.java
b/manager/dm-server/src/main/java/org/apache/doris/stack/control/manager/ResourceClusterManager.java
index 4fd1126..9faf551 100644
---
a/manager/dm-server/src/main/java/org/apache/doris/stack/control/manager/ResourceClusterManager.java
+++
b/manager/dm-server/src/main/java/org/apache/doris/stack/control/manager/ResourceClusterManager.java
@@ -44,12 +44,14 @@ public class ResourceClusterManager {
private ResourceNodeAndAgentManager nodeAndAgentManager;
public long initOperation(int userId, PMResourceClusterAccessInfo
authInfo, List<String> hosts) {
+ log.info("create resource cluster");
ResourceClusterEntity clusterEntity = new
ResourceClusterEntity(String.valueOf(userId),
JSON.toJSONString(authInfo));
ResourceClusterEntity newClusterEntity =
resourceClusterRepository.save(clusterEntity);
long resourceClusterId = newClusterEntity.getId();
+ log.debug("create resource cluster nodes is {}", hosts);
for (String host : hosts) {
nodeAndAgentManager.initOperation(resourceClusterId, host);
}
@@ -59,6 +61,7 @@ public class ResourceClusterManager {
public void updateOperation(long resourceClusterId, int userId,
PMResourceClusterAccessInfo authInfo,
List<String> hosts) {
+ log.info("update resource cluster {} info", resourceClusterId);
ResourceClusterEntity clusterEntity =
resourceClusterRepository.findById(resourceClusterId).get();
clusterEntity.setAccessInfo(JSON.toJSONString(authInfo));
@@ -66,13 +69,16 @@ public class ResourceClusterManager {
resourceClusterRepository.save(clusterEntity);
List<String> existHosts =
nodeRepository.getHostsByResourceClusterId(resourceClusterId);
+ log.debug("resource cluster {} exist nodes", existHosts);
List<String> reduceList = ListUtil.getReduceList(hosts, existHosts);
+ log.debug("resource cluster {} reduce nodes", reduceList);
for (String host : reduceList) {
nodeAndAgentManager.deleteOperation(resourceClusterId, host);
}
List<String> addList = ListUtil.getAddList(hosts, existHosts);
+ log.debug("resource cluster {} add nodes", addList);
for (String host : addList) {
nodeAndAgentManager.initOperation(resourceClusterId, host);
}
@@ -80,6 +86,7 @@ public class ResourceClusterManager {
public void configOperation(long resourceClusterId, String packageInfo,
String installInfo) {
// TODO:The path can be set separately for each machine later
+ log.info("config resource cluster {}", resourceClusterId);
ResourceClusterEntity resourceClusterEntity =
resourceClusterRepository.findById(resourceClusterId).get();
resourceClusterEntity.setRegistryInfo(packageInfo);
@@ -91,6 +98,7 @@ public class ResourceClusterManager {
}
public void startOperation(long resourceClusterId, long requestId) {
+ log.info("start resource cluster {} all nodes agent",
resourceClusterId);
ResourceClusterEntity clusterEntity =
resourceClusterRepository.findById(resourceClusterId).get();
PMResourceClusterAccessInfo accessInfo =
JSON.parseObject(clusterEntity.getAccessInfo(),
PMResourceClusterAccessInfo.class);
@@ -101,12 +109,14 @@ public class ResourceClusterManager {
configInfo.setSshPort(accessInfo.getSshPort());
configInfo.setSshKey(accessInfo.getSshKey());
+ log.debug("install agent for resource cluster {} all nodes");
for (ResourceNodeEntity nodeEntity : nodeEntities) {
nodeAndAgentManager.installAgentOperation(nodeEntity, configInfo,
requestId);
}
}
public void checkNodesAgentOperation(long resourceClusterId) throws
Exception {
+ log.info("check resource cluster {} all nodes agent",
resourceClusterId);
List<ResourceNodeEntity> nodeEntities =
nodeRepository.getByResourceClusterId(resourceClusterId);
for (ResourceNodeEntity nodeEntity : nodeEntities) {
diff --git
a/manager/dm-server/src/main/java/org/apache/doris/stack/control/manager/ResourceNodeAndAgentManager.java
b/manager/dm-server/src/main/java/org/apache/doris/stack/control/manager/ResourceNodeAndAgentManager.java
index 2d76ce9..69cf5b6 100644
---
a/manager/dm-server/src/main/java/org/apache/doris/stack/control/manager/ResourceNodeAndAgentManager.java
+++
b/manager/dm-server/src/main/java/org/apache/doris/stack/control/manager/ResourceNodeAndAgentManager.java
@@ -55,6 +55,7 @@ public class ResourceNodeAndAgentManager {
private HeartBeatEventRepository heartBeatEventRepository;
public long initOperation(long resourceClusterId, String host) {
+ log.info("create a new node {} for resource cluster {}", host,
resourceClusterId);
ResourceNodeEntity nodeEntity = new
ResourceNodeEntity(resourceClusterId, host);
ResourceNodeEntity newNodeEntity = nodeRepository.save(nodeEntity);
return newNodeEntity.getId();
@@ -62,10 +63,12 @@ public class ResourceNodeAndAgentManager {
// TODO:Uninstall agent
public void deleteOperation(long resourceClusterId, String host) {
+ log.info("delete node {} for resource cluster {}", host,
resourceClusterId);
nodeRepository.deleteByResourceClusterIdAndHost(resourceClusterId,
host);
}
public void installAgentOperation(ResourceNodeEntity node,
AgentInstallEventConfigInfo configInfo, long requestId) {
+ log.info("install node {} agent for request {}", node.getId(),
requestId);
configInfo.setAgentNodeId(node.getId());
configInfo.setInstallDir(node.getAgentInstallDir());
configInfo.setHost(node.getHost());
@@ -75,6 +78,7 @@ public class ResourceNodeAndAgentManager {
// Check whether the current node is already installing agent or agent
installation has failed
HeartBeatEventEntity agentInstallAgentEntity;
if (eventId < 1L) {
+ log.debug("first install agent for node {}", node.getId());
// fisrt time install agent
// create HeartBeatEvent
HeartBeatEventEntity eventEntity = new
HeartBeatEventEntity(HeartBeatEventType.AGENT_INSTALL.name(),
@@ -86,6 +90,7 @@ public class ResourceNodeAndAgentManager {
node.setCurrentEventId(eventId);
nodeRepository.save(node);
} else {
+ log.debug("install agent for node {} heart beat event {} exist",
node.getId(), eventId);
HeartBeatEventEntity eventEntity =
heartBeatEventRepository.findById(eventId).get();
// If the agent has been successfully installed and a new agent
request operation has been performed,
// the installation cannot be performed again
diff --git
a/manager/dm-server/src/main/java/org/apache/doris/stack/control/request/handler/DorisClusterTakeOverRequestHandler.java
b/manager/dm-server/src/main/java/org/apache/doris/stack/control/request/handler/DorisClusterTakeOverRequestHandler.java
index 646bc67..29ac117 100644
---
a/manager/dm-server/src/main/java/org/apache/doris/stack/control/request/handler/DorisClusterTakeOverRequestHandler.java
+++
b/manager/dm-server/src/main/java/org/apache/doris/stack/control/request/handler/DorisClusterTakeOverRequestHandler.java
@@ -85,6 +85,7 @@ public class DorisClusterTakeOverRequestHandler extends
DorisClusterRequestHandl
@Override
public long initRequestModel(DorisClusterRequest request, String creator)
throws Exception {
+ log.info("init doris cluster, create cluster user space");
DorisClusterTakeOverRequest takeOverRequest =
(DorisClusterTakeOverRequest) request;
return
dorisClusterManager.initOperation(takeOverRequest.getReqInfo().getSpaceInfo(),
creator);
}
@@ -94,7 +95,9 @@ public class DorisClusterTakeOverRequestHandler extends
DorisClusterRequestHandl
DorisClusterTakeOverRequest request,
boolean isInit)
throws Exception {
long clusterId = request.getClusterId();
+ log.info("handle take over cluster {} CREATE_CLUSTER_SPACE request {}
event", clusterId, request.getRequestId());
if (!isInit) {
+ log.info("The cluster user space already exist, update info.");
dorisClusterManager.updateClusterOperation(user, clusterId,
request.getReqInfo().getSpaceInfo());
}
@@ -106,6 +109,7 @@ public class DorisClusterTakeOverRequestHandler extends
DorisClusterRequestHandl
private ModelControlResponse handleAccessDorisClusterEvent(CoreUserEntity
user,
DorisClusterTakeOverRequest request) throws Exception {
long clusterId = request.getClusterId();
+ log.info("handle take over cluster {} ACCESS_DORIS_CLUSTER request {}
event", clusterId, request.getRequestId());
dorisClusterManager.clusterAccessOperation(clusterId,
request.getReqInfo().getClusterAccessInfo());
@@ -116,23 +120,31 @@ public class DorisClusterTakeOverRequestHandler extends
DorisClusterRequestHandl
private ModelControlResponse
handleCreateAndStartResourceClusterEvent(CoreUserEntity user,
DorisClusterTakeOverRequest request) throws Exception {
long clusterId = request.getClusterId();
+ log.info("handle take over cluster {}
CREATE_AND_START_RESOURCE_CLUSTER request {} event",
+ clusterId, request.getRequestId());
ClusterInfoEntity clusterInfo =
clusterInfoRepository.findById(clusterId).get();
// TODO:get cluster nodes ip info
List<String> nodeIps = new ArrayList<>();
- Statement stmt = jdbcClient.getStatement(clusterInfo.getAddress(),
clusterInfo.getQueryPort(), clusterInfo.getUser(), clusterInfo.getPasswd());
+ Statement stmt = jdbcClient.getStatement(clusterInfo.getAddress(),
clusterInfo.getQueryPort(),
+ clusterInfo.getUser(), clusterInfo.getPasswd());
Set<String> feNodeIps = jdbcClient.getFeOrBeIps(stmt, "'/frontends';");
+ log.debug("The node list IP of Doris cluster Fe is {}", feNodeIps);
Set<String> beNodeIps = jdbcClient.getFeOrBeIps(stmt, "'/backends';");
+ log.debug("The node list IP of Doris cluster Be is {}", beNodeIps);
jdbcClient.closeStatement(stmt);
Set<String> allNodeDistinct = new HashSet<>();
allNodeDistinct.addAll(feNodeIps);
allNodeDistinct.addAll(beNodeIps);
+ log.debug("The node list distinct IP of Doris cluster is {}",
allNodeDistinct);
+
nodeIps.addAll(allNodeDistinct);
+ log.debug("The node list IP of Doris cluster is {}", nodeIps);
dorisClusterManager.createClusterResourceOperation(user, clusterInfo,
request.getReqInfo().getAuthInfo(), nodeIps);
dorisClusterManager.configClusterResourceOperation(clusterInfo, "",
request.getReqInfo().getInstallInfo());
@@ -150,6 +162,8 @@ public class DorisClusterTakeOverRequestHandler extends
DorisClusterRequestHandl
beNodeIds.add(nodeEntity.getId());
}
}
+ log.debug("The node list ID of Doris cluster fe is {}", feNodeIds);
+ log.debug("The node list ID of Doris cluster be is {}", beNodeIds);
DorisClusterModuleResourceConfig feConfig = new
DorisClusterModuleResourceConfig();
feConfig.setModuleName(ServerAndAgentConstant.FE_NAME);
@@ -171,6 +185,7 @@ public class DorisClusterTakeOverRequestHandler extends
DorisClusterRequestHandl
private ModelControlResponse handleCheckClusterDeployEvent(CoreUserEntity
user,
DorisClusterTakeOverRequest request) throws Exception {
long clusterId = request.getClusterId();
+ log.info("handle take over cluster {} CHECK_CLUSTER_DEPLOY request {}
event", clusterId, request.getRequestId());
// Check whether the cluster node agent is installed successfully
ClusterInfoEntity clusterInfoEntity =
clusterInfoRepository.findById(clusterId).get();
@@ -185,6 +200,7 @@ public class DorisClusterTakeOverRequestHandler extends
DorisClusterRequestHandl
private ModelControlResponse handleCompletedEvent(CoreUserEntity user,
DorisClusterTakeOverRequest request) throws Exception {
long clusterId = request.getClusterId();
+ log.info("handle take over cluster {} COMPLETED_TAKEOVER request {}
event", clusterId, request.getRequestId());
dorisClusterManager.checkClusterInstancesOperation(clusterId);
return getResponse(request, true);
}
diff --git
a/manager/dm-server/src/main/java/org/apache/doris/stack/service/control/DorisClusterService.java
b/manager/dm-server/src/main/java/org/apache/doris/stack/service/control/DorisClusterService.java
index e265e62..e145b54 100644
---
a/manager/dm-server/src/main/java/org/apache/doris/stack/service/control/DorisClusterService.java
+++
b/manager/dm-server/src/main/java/org/apache/doris/stack/service/control/DorisClusterService.java
@@ -55,7 +55,6 @@ import
org.apache.doris.stack.model.response.control.ClusterModuleInfo;
import org.apache.doris.stack.model.response.control.ResourceNodeInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List;
@@ -103,7 +102,6 @@ public class DorisClusterService {
@Autowired
private ClusterUserComponent userComponent;
- @Transactional
public ModelControlResponse creation(CoreUserEntity user,
DorisClusterCreationReq creationReq) throws Exception {
log.info("Rquest info is {}", JSON.toJSON(creationReq));
@@ -118,7 +116,6 @@ public class DorisClusterService {
return response;
}
- @Transactional
public ModelControlResponse takeOver(CoreUserEntity user,
DorisClusterTakeOverReq takeOverReq) throws Exception {
log.info("Rquest info is {}", JSON.toJSON(takeOverReq));
DorisClusterTakeOverRequest request = new
DorisClusterTakeOverRequest();
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]