You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@accumulo.apache.org by kt...@apache.org on 2013/04/16 22:03:08 UTC
svn commit: r1468582 -
/accumulo/branches/1.5/server/src/main/java/org/apache/accumulo/server/master/LiveTServerSet.java
Author: kturner
Date: Tue Apr 16 20:03:08 2013
New Revision: 1468582
URL: http://svn.apache.org/r1468582
Log:
ACCUMULO-1277 made master delay deleting lockless tserver nodes in zookeeper
Modified:
accumulo/branches/1.5/server/src/main/java/org/apache/accumulo/server/master/LiveTServerSet.java
Modified: accumulo/branches/1.5/server/src/main/java/org/apache/accumulo/server/master/LiveTServerSet.java
URL: http://svn.apache.org/viewvc/accumulo/branches/1.5/server/src/main/java/org/apache/accumulo/server/master/LiveTServerSet.java?rev=1468582&r1=1468581&r2=1468582&view=diff
==============================================================================
--- accumulo/branches/1.5/server/src/main/java/org/apache/accumulo/server/master/LiveTServerSet.java (original)
+++ accumulo/branches/1.5/server/src/main/java/org/apache/accumulo/server/master/LiveTServerSet.java Tue Apr 16 20:03:08 2013
@@ -204,6 +204,7 @@ public class LiveTServerSet implements W
// Map from tserver master service to server information
private Map<String,TServerInfo> current = new HashMap<String,TServerInfo>();
+ private Map<String,Long> locklessServers = new HashMap<String,Long>();
public LiveTServerSet(Instance instance, AccumuloConfiguration conf, Listener cback) {
this.cback = cback;
@@ -238,6 +239,8 @@ public class LiveTServerSet implements W
HashSet<String> all = new HashSet<String>(current.keySet());
all.addAll(getZooCache().getChildren(path));
+ locklessServers.keySet().retainAll(all);
+
for (String server : all) {
checkServer(updates, doomed, path, server);
}
@@ -275,8 +278,15 @@ public class LiveTServerSet implements W
current.remove(server);
}
- deleteServerNode(path + "/" + server);
+ Long firstSeen = locklessServers.get(server);
+ if (firstSeen == null) {
+ locklessServers.put(server, System.currentTimeMillis());
+ } else if (System.currentTimeMillis() - firstSeen > 600000) {
+ deleteServerNode(path + "/" + server);
+ locklessServers.remove(server);
+ }
} else {
+ locklessServers.remove(server);
ServerServices services = new ServerServices(new String(lockData));
InetSocketAddress client = services.getAddress(ServerServices.Service.TSERV_CLIENT);
InetSocketAddress addr = AddressUtil.parseAddress(server, Property.TSERV_CLIENTPORT);