Repository: asterixdb
Updated Branches:
  refs/heads/master ab9097695 -> 62ee018ef


[NO ISSUE][HYR] Avoid redundant touch of heartbeat time

Change-Id: I88bc16c354cc0de59fa33d47705e9a4ddd617569
Reviewed-on: https://asterix-gerrit.ics.uci.edu/2100
Reviewed-by: Murtadha Hubail <[email protected]>
Integration-Tests: Murtadha Hubail <[email protected]>
Tested-by: Murtadha Hubail <[email protected]>


Project: http://git-wip-us.apache.org/repos/asf/asterixdb/repo
Commit: http://git-wip-us.apache.org/repos/asf/asterixdb/commit/62ee018e
Tree: http://git-wip-us.apache.org/repos/asf/asterixdb/tree/62ee018e
Diff: http://git-wip-us.apache.org/repos/asf/asterixdb/diff/62ee018e

Branch: refs/heads/master
Commit: 62ee018ef9a14342ff8336f0e0fa12091473bdb7
Parents: ab90976
Author: Michael Blow <[email protected]>
Authored: Tue Oct 24 18:16:11 2017 -0400
Committer: Michael Blow <[email protected]>
Committed: Tue Oct 24 19:56:27 2017 -0700

----------------------------------------------------------------------
 .../hyracks/control/cc/NodeControllerState.java | 62 ++++++++++----------
 .../control/cc/work/AbstractHeartbeatWork.java  |  6 +-
 .../cc/work/AbstractTaskLifecycleWork.java      |  5 --
 3 files changed, 35 insertions(+), 38 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/asterixdb/blob/62ee018e/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/NodeControllerState.java
----------------------------------------------------------------------
diff --git 
a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/NodeControllerState.java
 
b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/NodeControllerState.java
index fe4ce89..06af01f 100644
--- 
a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/NodeControllerState.java
+++ 
b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/NodeControllerState.java
@@ -213,39 +213,37 @@ public class NodeControllerState {
     public synchronized void notifyHeartbeat(HeartbeatData hbData) {
         touchHeartbeat();
         hbTime[rrdPtr] = System.currentTimeMillis();
-        if (hbData != null) {
-            heapInitSize[rrdPtr] = hbData.heapInitSize;
-            heapUsedSize[rrdPtr] = hbData.heapUsedSize;
-            heapCommittedSize[rrdPtr] = hbData.heapCommittedSize;
-            heapMaxSize[rrdPtr] = hbData.heapMaxSize;
-            nonheapInitSize[rrdPtr] = hbData.nonheapInitSize;
-            nonheapUsedSize[rrdPtr] = hbData.nonheapUsedSize;
-            nonheapCommittedSize[rrdPtr] = hbData.nonheapCommittedSize;
-            nonheapMaxSize[rrdPtr] = hbData.nonheapMaxSize;
-            threadCount[rrdPtr] = hbData.threadCount;
-            peakThreadCount[rrdPtr] = hbData.peakThreadCount;
-            systemLoadAverage[rrdPtr] = hbData.systemLoadAverage;
-            int gcN = hbSchema.getGarbageCollectorInfos().length;
-            for (int i = 0; i < gcN; ++i) {
-                gcCollectionCounts[i][rrdPtr] = hbData.gcCollectionCounts[i];
-                gcCollectionTimes[i][rrdPtr] = hbData.gcCollectionTimes[i];
-            }
-            netPayloadBytesRead[rrdPtr] = hbData.netPayloadBytesRead;
-            netPayloadBytesWritten[rrdPtr] = hbData.netPayloadBytesWritten;
-            netSignalingBytesRead[rrdPtr] = hbData.netSignalingBytesRead;
-            netSignalingBytesWritten[rrdPtr] = hbData.netSignalingBytesWritten;
-            datasetNetPayloadBytesRead[rrdPtr] = 
hbData.datasetNetPayloadBytesRead;
-            datasetNetPayloadBytesWritten[rrdPtr] = 
hbData.datasetNetPayloadBytesWritten;
-            datasetNetSignalingBytesRead[rrdPtr] = 
hbData.datasetNetSignalingBytesRead;
-            datasetNetSignalingBytesWritten[rrdPtr] = 
hbData.datasetNetSignalingBytesWritten;
-            ipcMessagesSent[rrdPtr] = hbData.ipcMessagesSent;
-            ipcMessageBytesSent[rrdPtr] = hbData.ipcMessageBytesSent;
-            ipcMessagesReceived[rrdPtr] = hbData.ipcMessagesReceived;
-            ipcMessageBytesReceived[rrdPtr] = hbData.ipcMessageBytesReceived;
-            diskReads[rrdPtr] = hbData.diskReads;
-            diskWrites[rrdPtr] = hbData.diskWrites;
-            rrdPtr = (rrdPtr + 1) % RRD_SIZE;
+        heapInitSize[rrdPtr] = hbData.heapInitSize;
+        heapUsedSize[rrdPtr] = hbData.heapUsedSize;
+        heapCommittedSize[rrdPtr] = hbData.heapCommittedSize;
+        heapMaxSize[rrdPtr] = hbData.heapMaxSize;
+        nonheapInitSize[rrdPtr] = hbData.nonheapInitSize;
+        nonheapUsedSize[rrdPtr] = hbData.nonheapUsedSize;
+        nonheapCommittedSize[rrdPtr] = hbData.nonheapCommittedSize;
+        nonheapMaxSize[rrdPtr] = hbData.nonheapMaxSize;
+        threadCount[rrdPtr] = hbData.threadCount;
+        peakThreadCount[rrdPtr] = hbData.peakThreadCount;
+        systemLoadAverage[rrdPtr] = hbData.systemLoadAverage;
+        int gcN = hbSchema.getGarbageCollectorInfos().length;
+        for (int i = 0; i < gcN; ++i) {
+            gcCollectionCounts[i][rrdPtr] = hbData.gcCollectionCounts[i];
+            gcCollectionTimes[i][rrdPtr] = hbData.gcCollectionTimes[i];
         }
+        netPayloadBytesRead[rrdPtr] = hbData.netPayloadBytesRead;
+        netPayloadBytesWritten[rrdPtr] = hbData.netPayloadBytesWritten;
+        netSignalingBytesRead[rrdPtr] = hbData.netSignalingBytesRead;
+        netSignalingBytesWritten[rrdPtr] = hbData.netSignalingBytesWritten;
+        datasetNetPayloadBytesRead[rrdPtr] = hbData.datasetNetPayloadBytesRead;
+        datasetNetPayloadBytesWritten[rrdPtr] = 
hbData.datasetNetPayloadBytesWritten;
+        datasetNetSignalingBytesRead[rrdPtr] = 
hbData.datasetNetSignalingBytesRead;
+        datasetNetSignalingBytesWritten[rrdPtr] = 
hbData.datasetNetSignalingBytesWritten;
+        ipcMessagesSent[rrdPtr] = hbData.ipcMessagesSent;
+        ipcMessageBytesSent[rrdPtr] = hbData.ipcMessageBytesSent;
+        ipcMessagesReceived[rrdPtr] = hbData.ipcMessagesReceived;
+        ipcMessageBytesReceived[rrdPtr] = hbData.ipcMessageBytesReceived;
+        diskReads[rrdPtr] = hbData.diskReads;
+        diskWrites[rrdPtr] = hbData.diskWrites;
+        rrdPtr = (rrdPtr + 1) % RRD_SIZE;
     }
 
     public void touchHeartbeat() {

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/62ee018e/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/work/AbstractHeartbeatWork.java
----------------------------------------------------------------------
diff --git 
a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/work/AbstractHeartbeatWork.java
 
b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/work/AbstractHeartbeatWork.java
index fa5dcd0..8e7faff 100644
--- 
a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/work/AbstractHeartbeatWork.java
+++ 
b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/work/AbstractHeartbeatWork.java
@@ -42,7 +42,11 @@ public abstract class AbstractHeartbeatWork extends 
SynchronizableWork {
         INodeManager nodeManager = ccs.getNodeManager();
         NodeControllerState state = nodeManager.getNodeControllerState(nodeId);
         if (state != null) {
-            state.notifyHeartbeat(hbData);
+            if (hbData != null) {
+                state.notifyHeartbeat(hbData);
+            } else {
+                state.touchHeartbeat();
+            }
         }
         runWork();
     }

http://git-wip-us.apache.org/repos/asf/asterixdb/blob/62ee018e/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/work/AbstractTaskLifecycleWork.java
----------------------------------------------------------------------
diff --git 
a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/work/AbstractTaskLifecycleWork.java
 
b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/work/AbstractTaskLifecycleWork.java
index 446bfd1..3babf00 100644
--- 
a/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/work/AbstractTaskLifecycleWork.java
+++ 
b/hyracks-fullstack/hyracks/hyracks-control/hyracks-control-cc/src/main/java/org/apache/hyracks/control/cc/work/AbstractTaskLifecycleWork.java
@@ -27,7 +27,6 @@ import org.apache.hyracks.api.dataflow.TaskId;
 import org.apache.hyracks.api.job.ActivityCluster;
 import org.apache.hyracks.api.job.JobId;
 import org.apache.hyracks.control.cc.ClusterControllerService;
-import org.apache.hyracks.control.cc.NodeControllerState;
 import org.apache.hyracks.control.cc.job.ActivityPlan;
 import org.apache.hyracks.control.cc.job.IJobManager;
 import org.apache.hyracks.control.cc.job.JobRun;
@@ -76,10 +75,6 @@ public abstract class AbstractTaskLifecycleWork extends 
AbstractHeartbeatWork {
                 }
             }
         }
-        final NodeControllerState ncState = 
ccs.getNodeManager().getNodeControllerState(nodeId);
-        if (ncState != null) {
-            ncState.touchHeartbeat();
-        }
     }
 
     protected abstract void performEvent(TaskAttempt ta);

Reply via email to