[improvement](fe) Add more log about add/remove frontends (#26306)

This commit is contained in:
walter
2023-11-02 20:19:51 +08:00
committed by GitHub
parent c098b0393a
commit d9621404b3
2 changed files with 23 additions and 3 deletions

View File

@ -2679,6 +2679,8 @@ public class Env {
}
fe = new Frontend(role, nodeName, host, editLogPort);
LOG.info("add frontend: {}", fe);
frontends.put(nodeName, fe);
BDBHA bdbha = (BDBHA) haProtocol;
if (role == FrontendNodeType.FOLLOWER || role == FrontendNodeType.REPLICA) {
@ -2709,6 +2711,8 @@ public class Env {
if (fe == null) {
throw new DdlException("frontend does not exist, nodeName:" + nodeName);
}
LOG.info("modify frontend with new host: {}, exist frontend: {}", fe.getHost(), fe);
boolean needLog = false;
// we use hostname as address of bdbha, so we don't need to update node address when ip changed
if (!Strings.isNullOrEmpty(destHost) && !destHost.equals(fe.getHost())) {
@ -2743,6 +2747,9 @@ public class Env {
throw new DdlException(role.toString() + " does not exist[" + NetUtils
.getHostPortInAccessibleFormat(host, port) + "]");
}
LOG.info("remove frontend: {}", fe);
frontends.remove(fe.getNodeName());
removedFrontends.add(fe.getNodeName());
@ -3535,6 +3542,7 @@ public class Env {
}
return;
}
LOG.info("replay add frontend: {}", fe);
frontends.put(fe.getNodeName(), fe);
if (fe.getRole() == FrontendNodeType.FOLLOWER || fe.getRole() == FrontendNodeType.REPLICA) {
// DO NOT add helper sockets here, cause BDBHA is not instantiated yet.
@ -3557,6 +3565,7 @@ public class Env {
return;
}
// modify fe in frontends
LOG.info("replay modify frontend with new host: {}, exist frontend: {}", fe.getHost(), existFe);
existFe.setHost(fe.getHost());
} finally {
unlock();
@ -3568,9 +3577,10 @@ public class Env {
try {
Frontend removedFe = frontends.remove(frontend.getNodeName());
if (removedFe == null) {
LOG.error(frontend.toString() + " does not exist.");
LOG.error(frontend + " does not exist.");
return;
}
LOG.info("replay drop frontend: {}", removedFe);
if (removedFe.getRole() == FrontendNodeType.FOLLOWER || removedFe.getRole() == FrontendNodeType.REPLICA) {
removeHelperNode(removedFe.getHost(), removedFe.getEditLogPort());
}

View File

@ -163,6 +163,7 @@ public class BDBHA implements HAProtocol {
return false;
}
try {
LOG.info("remove electable node: {}", nodeName);
replicationGroupAdmin.removeMember(nodeName);
} catch (MemberNotFoundException e) {
LOG.error("the deleting electable node is not found {}", nodeName, e);
@ -180,6 +181,7 @@ public class BDBHA implements HAProtocol {
return false;
}
try {
LOG.info("update electable node {} with new host name: {}, port: {}", nodeName, newHostName, port);
replicationGroupAdmin.updateAddress(nodeName, newHostName, port);
} catch (MemberNotFoundException e) {
LOG.error("the updating electable node is not found {}", nodeName, e);
@ -214,8 +216,11 @@ public class BDBHA implements HAProtocol {
unReadyElectableNodes.add(nodeName);
ReplicatedEnvironment replicatedEnvironment = environment.getReplicatedEnvironment();
if (replicatedEnvironment != null) {
int override = totalFollowerCount - unReadyElectableNodes.size();
LOG.info("set electable group size override to {}, total follower count: {}, add unready node: {}",
override, totalFollowerCount, nodeName);
replicatedEnvironment.setRepMutableConfig(new ReplicationMutableConfig()
.setElectableGroupSizeOverride(totalFollowerCount - unReadyElectableNodes.size()));
.setElectableGroupSizeOverride(override));
}
}
@ -226,11 +231,16 @@ public class BDBHA implements HAProtocol {
if (unReadyElectableNodes.isEmpty()) {
// Setting ElectableGroupSizeOverride to 0 means remove this config,
// and bdb will use the normal electable group size.
LOG.info("remove electable group size override, total follower count: {}, remove unready node: {}",
totalFollowerCount, nodeName);
replicatedEnvironment.setRepMutableConfig(
new ReplicationMutableConfig().setElectableGroupSizeOverride(0));
} else {
int override = totalFollowerCount - unReadyElectableNodes.size();
LOG.info("set electable group size override to {}, total follower count: {}, remove unready node: {}",
override, totalFollowerCount, nodeName);
replicatedEnvironment.setRepMutableConfig(new ReplicationMutableConfig()
.setElectableGroupSizeOverride(totalFollowerCount - unReadyElectableNodes.size()));
.setElectableGroupSizeOverride(override));
}
}
}