Repository: hbase
Updated Branches:
  refs/heads/master 02cdcefe4 -> 8d1a87fab


HBASE-12096 In ZKSplitLog Coordination and AggregateImplementation replace 
enhaced for statements with basic for statement to avoid unnecessary object 
allocation


Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/8d1a87fa
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/8d1a87fa
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/8d1a87fa

Branch: refs/heads/master
Commit: 8d1a87fabc90bd5d689debb82e92636cd5543aa9
Parents: 02cdcef
Author: stack <st...@apache.org>
Authored: Tue Sep 30 08:10:42 2014 -0700
Committer: stack <st...@apache.org>
Committed: Tue Sep 30 08:10:42 2014 -0700

----------------------------------------------------------------------
 .../ZKSplitLogManagerCoordination.java          | 40 +++++++++++++-------
 .../ZkSplitLogWorkerCoordination.java           |  7 ++--
 .../coprocessor/AggregateImplementation.java    | 29 ++++++++------
 3 files changed, 49 insertions(+), 27 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase/blob/8d1a87fa/hbase-server/src/main/java/org/apache/hadoop/hbase/coordination/ZKSplitLogManagerCoordination.java
----------------------------------------------------------------------
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/coordination/ZKSplitLogManagerCoordination.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/coordination/ZKSplitLogManagerCoordination.java
index 9876187..07986f2 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/coordination/ZKSplitLogManagerCoordination.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/coordination/ZKSplitLogManagerCoordination.java
@@ -152,8 +152,9 @@ public class ZKSplitLogManagerCoordination extends 
ZooKeeperListener implements
     try {
       List<String> tasks = ZKUtil.listChildrenNoWatch(watcher, 
watcher.splitLogZNode);
       if (tasks != null) {
-        for (String t : tasks) {
-          if (!ZKSplitLog.isRescanNode(watcher, t)) {
+        int listSize = tasks.size();
+        for (int i = 0; i < listSize; i++) {
+          if (!ZKSplitLog.isRescanNode(watcher, tasks.get(i))) {
             count++;
           }
         }
@@ -302,8 +303,9 @@ public class ZKSplitLogManagerCoordination extends 
ZooKeeperListener implements
     try {
       List<String> tasks = ZKUtil.listChildrenNoWatch(watcher, 
watcher.splitLogZNode);
       if (tasks != null) {
-        for (String t : tasks) {
-          if (!ZKSplitLog.isRescanNode(watcher, t)) {
+        int listSize = tasks.size();
+        for (int i = 0; i < listSize; i++) {
+          if (!ZKSplitLog.isRescanNode(watcher, tasks.get(i))) {
             count++;
           }
         }
@@ -319,7 +321,9 @@ public class ZKSplitLogManagerCoordination extends 
ZooKeeperListener implements
         // remove recovering regions which doesn't have any RS associated with 
it
         List<String> regions = ZKUtil.listChildrenNoWatch(watcher, 
watcher.recoveringRegionsZNode);
         if (regions != null) {
-          for (String region : regions) {
+          int listSize = regions.size();
+          for (int i = 0; i < listSize; i++) {
+            String region = regions.get(i);
             if (isMetaRecovery != null) {
               if ((isMetaRecovery && 
!region.equalsIgnoreCase(metaEncodeRegionName))
                   || (!isMetaRecovery && 
region.equalsIgnoreCase(metaEncodeRegionName))) {
@@ -337,7 +341,9 @@ public class ZKSplitLogManagerCoordination extends 
ZooKeeperListener implements
             if (recoveredServerNameSet.containsAll(failedServers)) {
               ZKUtil.deleteNodeRecursively(watcher, nodePath);
             } else {
-              for (String failedServer : failedServers) {
+              listSize = failedServers.size();
+              for (int j = 0; j < listSize; j++) {
+                String failedServer = failedServers.get(j);
                 if (recoveredServerNameSet.contains(failedServer)) {
                   String tmpPath = ZKUtil.joinZNode(nodePath, failedServer);
                   ZKUtil.deleteNode(watcher, tmpPath);
@@ -576,7 +582,9 @@ public class ZKSplitLogManagerCoordination extends 
ZooKeeperListener implements
       return;
     }
     int rescan_nodes = 0;
-    for (String path : orphans) {
+    int listSize = orphans.size();
+    for (int i = 0; i < listSize; i++) {
+      String path = orphans.get(i);
       String nodepath = ZKUtil.joinZNode(watcher.splitLogZNode, path);
       if (ZKSplitLog.isRescanNode(watcher, nodepath)) {
         rescan_nodes++;
@@ -682,7 +690,9 @@ public class ZKSplitLogManagerCoordination extends 
ZooKeeperListener implements
     try {
       List<String> tasks = ZKUtil.listChildrenNoWatch(watcher, 
watcher.splitLogZNode);
       if (tasks != null) {
-        for (String t : tasks) {
+        int listSize = tasks.size();
+        for (int i = 0; i < listSize; i++) {
+          String t = tasks.get(i);
           byte[] data;
           try {
             data = ZKUtil.getData(this.watcher, 
ZKUtil.joinZNode(watcher.splitLogZNode, t));
@@ -714,16 +724,18 @@ public class ZKSplitLogManagerCoordination extends 
ZooKeeperListener implements
       // remove recovering regions which doesn't have any RS associated with it
       List<String> regions = ZKUtil.listChildrenNoWatch(watcher, 
watcher.recoveringRegionsZNode);
       if (regions != null) {
-        for (String region : regions) {
-          String nodePath = ZKUtil.joinZNode(watcher.recoveringRegionsZNode, 
region);
+        int listSize = regions.size();
+        for (int i = 0; i < listSize; i++) {
+          String nodePath = ZKUtil.joinZNode(watcher.recoveringRegionsZNode, 
regions.get(i));
           List<String> regionFailedServers = 
ZKUtil.listChildrenNoWatch(watcher, nodePath);
           if (regionFailedServers == null || regionFailedServers.isEmpty()) {
             ZKUtil.deleteNode(watcher, nodePath);
             continue;
           }
           boolean needMoreRecovery = false;
-          for (String tmpFailedServer : regionFailedServers) {
-            if (knownFailedServers.contains(tmpFailedServer)) {
+          listSize = regionFailedServers.size();
+          for (i = 0; i < listSize; i++) {
+            if (knownFailedServers.contains(regionFailedServers.get(i))) {
               needMoreRecovery = true;
               break;
             }
@@ -787,7 +799,9 @@ public class ZKSplitLogManagerCoordination extends 
ZooKeeperListener implements
           hasSplitLogTask = true;
           if (isForInitialization) {
             // during initialization, try to get recovery mode from 
splitlogtask
-            for (String task : tasks) {
+            int listSize = tasks.size();
+            for (int i = 0; i < listSize; i++) {
+              String task = tasks.get(i);
               try {
                 byte[] data =
                     ZKUtil.getData(this.watcher, 
ZKUtil.joinZNode(watcher.splitLogZNode, task));

http://git-wip-us.apache.org/repos/asf/hbase/blob/8d1a87fa/hbase-server/src/main/java/org/apache/hadoop/hbase/coordination/ZkSplitLogWorkerCoordination.java
----------------------------------------------------------------------
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/coordination/ZkSplitLogWorkerCoordination.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/coordination/ZkSplitLogWorkerCoordination.java
index 0404f04..2945565 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/coordination/ZkSplitLogWorkerCoordination.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/coordination/ZkSplitLogWorkerCoordination.java
@@ -450,9 +450,10 @@ public class ZkSplitLogWorkerCoordination extends 
ZooKeeperListener implements
               // Make a local copy to prevent ConcurrentModificationException 
when other threads
               // modify recoveringRegions
               List<String> tmpCopy = new 
ArrayList<String>(recoveringRegions.keySet());
-              for (String region : tmpCopy) {
-                String nodePath =
-                    ZKUtil.joinZNode(watcher.recoveringRegionsZNode, region);
+              int listSize = tmpCopy.size();
+              for (int i = 0; i < listSize; i++) {
+                String region = tmpCopy.get(i);
+                String nodePath = 
ZKUtil.joinZNode(watcher.recoveringRegionsZNode, region);
                 try {
                   if (ZKUtil.checkExists(watcher, nodePath) == -1) {
                     HRegion r = recoveringRegions.remove(region);

http://git-wip-us.apache.org/repos/asf/hbase/blob/8d1a87fa/hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/AggregateImplementation.java
----------------------------------------------------------------------
diff --git 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/AggregateImplementation.java
 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/AggregateImplementation.java
index edaca1c..1db5671 100644
--- 
a/hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/AggregateImplementation.java
+++ 
b/hbase-server/src/main/java/org/apache/hadoop/hbase/coprocessor/AggregateImplementation.java
@@ -92,8 +92,9 @@ extends AggregateService implements CoprocessorService, 
Coprocessor {
       boolean hasMoreRows = false;
       do {
         hasMoreRows = scanner.next(results);
-        for (Cell kv : results) {
-          temp = ci.getValue(colFamily, qualifier, kv);
+        int listSize = results.size();
+        for (int i = 0; i < listSize; i++) {
+          temp = ci.getValue(colFamily, qualifier, results.get(i));
           max = (max == null || (temp != null && ci.compare(temp, max) > 0)) ? 
temp : max;
         }
         results.clear();
@@ -145,8 +146,9 @@ extends AggregateService implements CoprocessorService, 
Coprocessor {
       boolean hasMoreRows = false;
       do {
         hasMoreRows = scanner.next(results);
-        for (Cell kv : results) {
-          temp = ci.getValue(colFamily, qualifier, kv);
+        int listSize = results.size();
+        for (int i = 0; i < listSize; i++) {
+          temp = ci.getValue(colFamily, qualifier, results.get(i));
           min = (min == null || (temp != null && ci.compare(temp, min) < 0)) ? 
temp : min;
         }
         results.clear();
@@ -198,8 +200,9 @@ extends AggregateService implements CoprocessorService, 
Coprocessor {
       boolean hasMoreRows = false;
       do {
         hasMoreRows = scanner.next(results);
-        for (Cell kv : results) {
-          temp = ci.getValue(colFamily, qualifier, kv);
+        int listSize = results.size();
+        for (int i = 0; i < listSize; i++) {
+          temp = ci.getValue(colFamily, qualifier, results.get(i));
           if (temp != null)
             sumVal = ci.add(sumVal, ci.castToReturnType(temp));
         }
@@ -310,9 +313,10 @@ extends AggregateService implements CoprocessorService, 
Coprocessor {
       do {
         results.clear();
         hasMoreRows = scanner.next(results);
-        for (Cell kv : results) {
+        int listSize = results.size();
+        for (int i = 0; i < listSize; i++) {
           sumVal = ci.add(sumVal, ci.castToReturnType(ci.getValue(colFamily,
-              qualifier, kv)));
+              qualifier, results.get(i))));
         }
         rowCountVal++;
       } while (hasMoreRows);
@@ -370,9 +374,10 @@ extends AggregateService implements CoprocessorService, 
Coprocessor {
       do {
         tempVal = null;
         hasMoreRows = scanner.next(results);
-        for (Cell kv : results) {
+        int listSize = results.size();
+        for (int i = 0; i < listSize; i++) {
           tempVal = ci.add(tempVal, ci.castToReturnType(ci.getValue(colFamily,
-              qualifier, kv)));
+              qualifier, results.get(i))));
         }
         results.clear();
         sumVal = ci.add(sumVal, tempVal);
@@ -436,7 +441,9 @@ extends AggregateService implements CoprocessorService, 
Coprocessor {
         tempVal = null;
         tempWeight = null;
         hasMoreRows = scanner.next(results);
-        for (Cell kv : results) {
+        int listSize = results.size();
+        for (int i = 0; i < listSize; i++) {
+          Cell kv = results.get(i);
           tempVal = ci.add(tempVal, ci.castToReturnType(ci.getValue(colFamily,
               valQualifier, kv)));
           if (weightQualifier != null) {

Reply via email to