You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ji...@apache.org on 2023/05/10 08:14:29 UTC
[iotdb] branch native_raft updated: change window retrival
This is an automated email from the ASF dual-hosted git repository.
jiangtian pushed a commit to branch native_raft
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/native_raft by this push:
new ff97d4943d change window retrival
ff97d4943d is described below
commit ff97d4943d0901da54d77f6fdf0ea9b4d710dbf9
Author: Tian Jiang <jt...@163.com>
AuthorDate: Wed May 10 16:17:16 2023 +0800
change window retrival
---
.../protocol/log/dispatch/flowcontrol/FlowMonitor.java | 17 +++++++++++++++--
1 file changed, 15 insertions(+), 2 deletions(-)
diff --git a/consensus/src/main/java/org/apache/iotdb/consensus/natraft/protocol/log/dispatch/flowcontrol/FlowMonitor.java b/consensus/src/main/java/org/apache/iotdb/consensus/natraft/protocol/log/dispatch/flowcontrol/FlowMonitor.java
index 5689a1effd..b69400725a 100644
--- a/consensus/src/main/java/org/apache/iotdb/consensus/natraft/protocol/log/dispatch/flowcontrol/FlowMonitor.java
+++ b/consensus/src/main/java/org/apache/iotdb/consensus/natraft/protocol/log/dispatch/flowcontrol/FlowMonitor.java
@@ -154,14 +154,27 @@ public class FlowMonitor {
return flowSum * 1.0 / intervalSum * 1000;
}
+ /**
+ * Get the latest windows whose number at most windowNum. Only windows within currenTime -
+ * windowNum * windowInterval will be returned, i.e., windows too old will not be returned.
+ *
+ * @param windowNum the maximum number of windows to be returned
+ * @return At most windowNum windows, all within currenTime - windowNum * windowInterval
+ */
public List<FlowWindow> getLatestWindows(int windowNum) {
+ long currentTime = System.currentTimeMillis();
List<FlowWindow> result = new ArrayList<>();
- result.add(new FlowWindow(currWindowStart, currWindowSum));
+ if ((currentTime - currWindowStart) <= windowNum * windowInterval) {
+ result.add(new FlowWindow(currWindowStart, currWindowSum));
+ }
+
Iterator<FlowWindow> windowIterator = windows.descendingIterator();
for (int i = 1; i < windowNum; i++) {
if (windowIterator.hasNext()) {
FlowWindow window = windowIterator.next();
- result.add(window);
+ if ((currentTime - window.start) <= windowNum * windowInterval) {
+ result.add(window);
+ }
} else {
break;
}