This is an automated email from the ASF dual-hosted git repository. tanxinyu pushed a commit to branch master_performance in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit 8bab5faa429ccf2ed66eb23ee6da625b1992caaf Author: LebronAl <[email protected]> AuthorDate: Thu Dec 9 17:44:40 2021 +0800 add group report --- .../main/java/org/apache/iotdb/cluster/ClusterIoTDB.java | 1 + .../org/apache/iotdb/cluster/server/member/RaftMember.java | 4 ++-- .../apache/iotdb/cluster/server/monitor/NodeReport.java | 14 ++++++++++++++ .../iotdb/cluster/server/service/DataGroupEngine.java | 12 +++++++++++- 4 files changed, 28 insertions(+), 3 deletions(-) diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/ClusterIoTDB.java b/cluster/src/main/java/org/apache/iotdb/cluster/ClusterIoTDB.java index ac4851a..812cebc 100644 --- a/cluster/src/main/java/org/apache/iotdb/cluster/ClusterIoTDB.java +++ b/cluster/src/main/java/org/apache/iotdb/cluster/ClusterIoTDB.java @@ -220,6 +220,7 @@ public class ClusterIoTDB implements ClusterIoTDBMBean { NodeReport report = new NodeReport(thisNode); report.setMetaMemberReport(metaGroupMember.genMemberReport()); report.setDataMemberReportList(dataGroupEngine.genMemberReports()); + report.setGroups(dataGroupEngine.getGroupReports()); logger.info(report.toString()); } catch (Exception e) { logger.error("exception occurred when generating node report", e); diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/server/member/RaftMember.java b/cluster/src/main/java/org/apache/iotdb/cluster/server/member/RaftMember.java index 05ce76c..51fef37 100644 --- a/cluster/src/main/java/org/apache/iotdb/cluster/server/member/RaftMember.java +++ b/cluster/src/main/java/org/apache/iotdb/cluster/server/member/RaftMember.java @@ -177,7 +177,7 @@ public abstract class RaftMember implements RaftMemberMBean { */ volatile long lastHeartbeatReceivedTime; /** the raft logs are all stored and maintained in the log manager */ - RaftLogManager logManager; + public RaftLogManager logManager; /** * the single thread pool that runs the heartbeat thread, which send heartbeats to the follower * when this node is a leader, or start elections when this node is an elector. @@ -193,7 +193,7 @@ public abstract class RaftMember implements RaftMemberMBean { * lastLogIndex when generating the previous member report, to show the log ingestion rate of the * member by comparing it with the current last log index. */ - long lastReportedLogIndex; + public long lastReportedLogIndex; /** the thread pool that runs catch-up tasks */ private ExecutorService catchUpService; /** diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/server/monitor/NodeReport.java b/cluster/src/main/java/org/apache/iotdb/cluster/server/monitor/NodeReport.java index 10538be..4d97875 100644 --- a/cluster/src/main/java/org/apache/iotdb/cluster/server/monitor/NodeReport.java +++ b/cluster/src/main/java/org/apache/iotdb/cluster/server/monitor/NodeReport.java @@ -24,6 +24,7 @@ import org.apache.iotdb.cluster.rpc.thrift.RaftNode; import org.apache.iotdb.cluster.server.NodeCharacter; import org.apache.iotdb.rpc.RpcStat; import org.apache.iotdb.rpc.RpcTransportFactory; +import org.apache.iotdb.tsfile.utils.Pair; import java.util.ArrayList; import java.util.List; @@ -38,12 +39,17 @@ public class NodeReport { private Node thisNode; private MetaMemberReport metaMemberReport; private List<DataMemberReport> dataMemberReportList; + private Pair<Integer, Integer> groups; public NodeReport(Node thisNode) { this.thisNode = thisNode; dataMemberReportList = new ArrayList<>(); } + public void setGroups(Pair<Integer, Integer> groups) { + this.groups = groups; + } + public void setMetaMemberReport(MetaMemberReport metaMemberReport) { this.metaMemberReport = metaMemberReport; } @@ -60,6 +66,14 @@ public class NodeReport { for (DataMemberReport dataMemberReport : dataMemberReportList) { stringBuilder.append(dataMemberReport).append(System.lineSeparator()); } + stringBuilder + .append("DataGroupReport{curAllLogIndex=") + .append(groups.left) + .append(",prevAllLogIndex=") + .append(groups.right) + .append(",logIncrement=") + .append(groups.left - groups.right) + .append("}"); return stringBuilder.toString(); } diff --git a/cluster/src/main/java/org/apache/iotdb/cluster/server/service/DataGroupEngine.java b/cluster/src/main/java/org/apache/iotdb/cluster/server/service/DataGroupEngine.java index 58593af..e51f03b 100644 --- a/cluster/src/main/java/org/apache/iotdb/cluster/server/service/DataGroupEngine.java +++ b/cluster/src/main/java/org/apache/iotdb/cluster/server/service/DataGroupEngine.java @@ -43,6 +43,7 @@ import org.apache.iotdb.db.exception.StartupException; import org.apache.iotdb.db.service.IService; import org.apache.iotdb.db.service.ServiceType; import org.apache.iotdb.db.utils.TestOnly; +import org.apache.iotdb.tsfile.utils.Pair; import org.apache.thrift.async.AsyncMethodCallback; import org.apache.thrift.protocol.TProtocolFactory; @@ -464,12 +465,21 @@ public class DataGroupEngine implements IService, DataGroupEngineMBean { public List<DataMemberReport> genMemberReports() { List<DataMemberReport> dataMemberReports = new ArrayList<>(); for (DataGroupMember value : headerGroupMap.values()) { - dataMemberReports.add(value.genReport()); } return dataMemberReports; } + public Pair<Integer, Integer> getGroupReports() { + int last = 0; + int all = 0; + for (DataGroupMember value : headerGroupMap.values()) { + last += value.lastReportedLogIndex; + all += value.logManager.getLastLogIndex(); + } + return new Pair<>(all, last); + } + public Map<RaftNode, DataGroupMember> getHeaderGroupMap() { return headerGroupMap; }
