You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ta...@apache.org on 2022/01/14 06:19:33 UTC
[iotdb] 08/13: add group report
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 <TX...@gmail.com>
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;
}