@Override public List<String> getOnlineShardServers(boolean useCache, String cluster) { if (useCache) { synchronized (_onlineShardsNodes) { Map<String, List<String>> map = _onlineShardsNodes.get(); if (map != null) { List<String> shards = map.get(cluster); if (shards != null) { return shards; } } else { _onlineShardsNodes.set(new ConcurrentHashMap<String, List<String>>()); watchForOnlineShardNodes(cluster); } } } LOG.info("trace getOnlineShardServers"); try { return _zk.getChildren( ZookeeperPathConstants.getClustersPath() + "/" + cluster + "/online/shard-nodes", false); } catch (KeeperException e) { throw new RuntimeException(e); } catch (InterruptedException e) { throw new RuntimeException(e); } }
@Override public List<String> getControllerServerList() { LOG.info("trace getControllerServerList"); try { return _zk.getChildren(ZookeeperPathConstants.getOnlineControllersPath(), false); } catch (KeeperException e) { throw new RuntimeException(e); } catch (InterruptedException e) { throw new RuntimeException(e); } }