Repository: incubator-trafodion
Updated Branches:
  refs/heads/master fbfab1e8f -> 4e8bc1bb6


useless to sleep 30s after disconnecting


Project: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-trafodion/commit/f68df24b
Tree: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/tree/f68df24b
Diff: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/diff/f68df24b

Branch: refs/heads/master
Commit: f68df24bc4ba9d06a466e247d92315bca3040bf2
Parents: e54c732
Author: Kevin Xu <[email protected]>
Authored: Thu Dec 3 15:17:15 2015 +0800
Committer: Kevin Xu <[email protected]>
Committed: Thu Dec 3 15:17:15 2015 +0800

----------------------------------------------------------------------
 .../dcs/master/listener/ConnectReply.java       | 72 ++++++++------------
 .../org/trafodion/dcs/servermt/ServerUtils.java |  2 +-
 2 files changed, 30 insertions(+), 44 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/f68df24b/dcs/src/main/java/org/trafodion/dcs/master/listener/ConnectReply.java
----------------------------------------------------------------------
diff --git 
a/dcs/src/main/java/org/trafodion/dcs/master/listener/ConnectReply.java 
b/dcs/src/main/java/org/trafodion/dcs/master/listener/ConnectReply.java
index f0880b6..704c9a7 100644
--- a/dcs/src/main/java/org/trafodion/dcs/master/listener/ConnectReply.java
+++ b/dcs/src/main/java/org/trafodion/dcs/master/listener/ConnectReply.java
@@ -163,29 +163,20 @@ class ConnectReply {
             for(int i=0; i < randomPicks; i++){
                 while(true){
                     index = random.nextInt();
-                    index = index > 0? index : -index;
+                    index = Math.abs(index);
                     index %= length;
                     if (indexArr[index] != index) break;
                 }
                 indexArr[index] = index;
-                maxIndex = index > maxIndex ? index : maxIndex;
+                maxIndex = Math.max(maxIndex, index);
                 server = servers.get(index);
                 if(LOG.isDebugEnabled())
-                    LOG.debug(clientSocketAddress + ": " + " index " + index + 
" server picked " + server );
-                
-                nodeRegisteredPath = registeredPath + "/" + server;
-                stat = zkc.exists(nodeRegisteredPath,false);
-                if(stat != null){
-                    data = zkc.getData(nodeRegisteredPath, false, stat);
-                    if (false == (new String(data)).startsWith("AVAILABLE:"))
-                        continue;
-                    else {
-                        found = true;
-                        break;
-                    }
-                }
-                else
-                    continue;
+                    LOG.debug(clientSocketAddress + ": " + "server selected in 
search 1 " + server );
+                data = isServerAvalible(registeredPath + "/" + server);
+                if(data != null){
+                       found = true;
+                       break;
+                }else continue;
             }
 //
 // search sequentially for AVAILABLE server starting from highest random index 
+ 1 to length
@@ -197,19 +188,11 @@ class ConnectReply {
                         if(LOG.isDebugEnabled())
                             LOG.debug(clientSocketAddress + ": " + "server 
selected in search 1 " + server );
                             
-                        nodeRegisteredPath = registeredPath + "/" + server;
-                        stat = zkc.exists(nodeRegisteredPath,false);
-                        if(stat != null){
-                            data = zkc.getData(nodeRegisteredPath, false, 
stat);
-                            if (false == (new 
String(data)).startsWith("AVAILABLE:"))
-                                continue;
-                            else {
-                                found = true;
-                                break;
-                            }
-                        }
-                        else
-                            continue;
+                        data = isServerAvalible(registeredPath + "/" + server);
+                        if(data != null){
+                               found = true;
+                               break;
+                        }else continue;
                     }
                 }
             }
@@ -223,19 +206,11 @@ class ConnectReply {
                         if(LOG.isDebugEnabled())
                             LOG.debug(clientSocketAddress + ": " + "server 
selected in search 2 " + server );
                             
-                        nodeRegisteredPath = registeredPath + "/" + server;
-                        stat = zkc.exists(nodeRegisteredPath,false);
-                        if(stat != null){
-                            data = zkc.getData(nodeRegisteredPath, false, 
stat);
-                            if (false == (new 
String(data)).startsWith("AVAILABLE:"))
-                                continue;
-                            else {
-                                found = true;
-                                break;
-                            }
-                        }
-                        else
-                            continue;
+                        data = isServerAvalible(registeredPath + "/" + server);
+                        if(data != null){
+                               found = true;
+                               break;
+                        }else continue;
                     }
                 }
             }
@@ -335,4 +310,15 @@ class ConnectReply {
         }
     return replyException;
     }
+    
+       private byte[] isServerAvalible(String serverPath) throws 
KeeperException, InterruptedException {
+        Stat stat = zkc.exists(serverPath,false);
+        if(stat != null){
+            byte[] data = zkc.getData(serverPath, false, stat);
+            if(data != null && new String(data).startsWith("AVAILABLE:")){
+               return data;
+            }
+        }
+               return null;
+       }
 }

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/f68df24b/dcs/src/main/java/org/trafodion/dcs/servermt/ServerUtils.java
----------------------------------------------------------------------
diff --git a/dcs/src/main/java/org/trafodion/dcs/servermt/ServerUtils.java 
b/dcs/src/main/java/org/trafodion/dcs/servermt/ServerUtils.java
index 8fc93d0..2962e74 100644
--- a/dcs/src/main/java/org/trafodion/dcs/servermt/ServerUtils.java
+++ b/dcs/src/main/java/org/trafodion/dcs/servermt/ServerUtils.java
@@ -209,7 +209,7 @@ public final class ServerUtils  {
                 updateStateToConnected();
             }
             else if (serverState == ServerConstants.SERVER_STATE_DISCONNECTED){
-                updateStateDisconnected();
+                //updateStateDisconnected();
                 updateServerStateAvailable();
             }
             else if (serverState == 
ServerConstants.SERVER_STATE_CONNECT_FAILED){

Reply via email to