Repository: accumulo Updated Branches: refs/heads/master 07ef189c4 -> 6d8f41145
ACCUMULO-4570 Use a boolean for active service instead of the ZooLock Closes #202 Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/6d8f4114 Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/6d8f4114 Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/6d8f4114 Branch: refs/heads/master Commit: 6d8f4114526fe54fb8da4ee2a8669fe50785433b Parents: 07ef189 Author: Josh Elser <els...@apache.org> Authored: Tue Jan 17 16:23:57 2017 -0500 Committer: Josh Elser <els...@apache.org> Committed: Tue Jan 17 16:54:43 2017 -0500 ---------------------------------------------------------------------- .../src/main/java/org/apache/accumulo/master/Master.java | 10 ++++++---- .../main/java/org/apache/accumulo/monitor/Monitor.java | 9 +++++---- 2 files changed, 11 insertions(+), 8 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/accumulo/blob/6d8f4114/server/master/src/main/java/org/apache/accumulo/master/Master.java ---------------------------------------------------------------------- diff --git a/server/master/src/main/java/org/apache/accumulo/master/Master.java b/server/master/src/main/java/org/apache/accumulo/master/Master.java index 0213ad5..b926b52 100644 --- a/server/master/src/main/java/org/apache/accumulo/master/Master.java +++ b/server/master/src/main/java/org/apache/accumulo/master/Master.java @@ -217,6 +217,8 @@ public class Master extends AccumuloServerContext implements LiveTServerSet.List volatile SortedMap<TServerInstance,TabletServerStatus> tserverStatus = Collections.unmodifiableSortedMap(new TreeMap<TServerInstance,TabletServerStatus>()); final ServerBulkImportStatus bulkImportStatus = new ServerBulkImportStatus(); + private final AtomicBoolean masterInitialized = new AtomicBoolean(false); + @Override public synchronized MasterState getMasterState() { return state; @@ -1302,6 +1304,9 @@ public class Master extends AccumuloServerContext implements LiveTServerSet.List log.error("Failed to register replication metrics", e); } + // The master is fully initialized. Clients are allowed to connect now. + masterInitialized.set(true); + while (clientService.isServing()) { sleepUninterruptibly(500, TimeUnit.MILLISECONDS); } @@ -1694,9 +1699,6 @@ public class Master extends AccumuloServerContext implements LiveTServerSet.List @Override public boolean isActiveService() { - if (null != masterLock) { - return masterLock.isLocked(); - } - return false; + return masterInitialized.get(); } } http://git-wip-us.apache.org/repos/asf/accumulo/blob/6d8f4114/server/monitor/src/main/java/org/apache/accumulo/monitor/Monitor.java ---------------------------------------------------------------------- diff --git a/server/monitor/src/main/java/org/apache/accumulo/monitor/Monitor.java b/server/monitor/src/main/java/org/apache/accumulo/monitor/Monitor.java index 1e8feaa..d239a84 100644 --- a/server/monitor/src/main/java/org/apache/accumulo/monitor/Monitor.java +++ b/server/monitor/src/main/java/org/apache/accumulo/monitor/Monitor.java @@ -32,6 +32,7 @@ import java.util.Map.Entry; import java.util.Set; import java.util.TimerTask; import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicLong; import java.util.concurrent.atomic.AtomicReference; @@ -119,6 +120,7 @@ public class Monitor implements HighlyAvailableService { private static long totalLookups = 0; private static int totalTables = 0; public static HighlyAvailableService HA_SERVICE_INSTANCE = null; + private static final AtomicBoolean monitorInitialized = new AtomicBoolean(false); private static class MaxList<T> extends LinkedList<Pair<Long,T>> { private static final long serialVersionUID = 1L; @@ -545,6 +547,8 @@ public class Monitor implements HighlyAvailableService { } } }), "Scan scanner").start(); + + monitorInitialized.set(true); } public static class ScanStats { @@ -845,9 +849,6 @@ public class Monitor implements HighlyAvailableService { @Override public boolean isActiveService() { - if (null != monitorLock && monitorLock.isLocked()) { - return true; - } - return false; + return monitorInitialized.get(); } }