List of usage examples for org.apache.cassandra.service StorageServiceMBean getLoadMap
@Deprecated
public Map<String, String> getLoadMap();
From source file:org.ayache.cassandra.repair.scheduler.NodeChooser.java
/** * Construct NodeChooser//w w w. j av a2s.c om * * @param serviceMBean * @param esMBean * @param dc * @param lastRepairedNode * @throws java.io.IOException */ public NodeChooser(StorageServiceMBean serviceMBean, EndpointSnitchInfoMBean esMBean, String dc, String lastRepairedNode, boolean simult) throws IOException { this.serviceMBean = serviceMBean; this.esMBean = esMBean; this.dc = dc; this.lastRepairedNode = lastRepairedNode; List<String> keyspaces = serviceMBean.getKeyspaces(); Collection<String> nodesFromDC = getNodesFromDC(); Collection<Float> values = new LinkedList<>(); float Rf = 0; for (String keyspace : keyspaces) { try { values.clear(); Map<InetAddress, Float> effectiveOwnership = serviceMBean.effectiveOwnership(keyspace); for (Map.Entry<InetAddress, Float> entry : effectiveOwnership.entrySet()) { for (String node : nodesFromDC) { if (entry.getKey().getHostAddress().equals(node)) { values.add(entry.getValue()); } } } float localRf = 0; for (Float value : values) { localRf += value; } Rf = (localRf > Rf) ? localRf : Rf; } catch (IllegalStateException ex) { //Ignore error, pass to next keyspace } } // replicates = (int) Rf; supportSimultaneousRepair = simult && nodesFromDC.size() >= 3 * Rf; Logger.getLogger(NodeChooser.class.getName()).info(serviceMBean.getLoadMap().toString()); Logger.getLogger(NodeChooser.class.getName()) .info("Replicas :" + Rf + " Simultaneous Repair Supported: " + supportSimultaneousRepair); }
From source file:org.wso2.carbon.cassandra.mgt.CassandraClusterAdmin.java
License:Apache License
/** * Get information about all the nodes in a cluster * * @return an array of <code>NodeInformation</code> * @throws CassandraServerManagementException * for errors during accessing nodes */// www . j a va2s . c om public NodeInformation[] getNodes() throws CassandraServerManagementException { StorageServiceMBean ssMBean = null; try { ssMBean = CassandraAdminDataHolder.getInstance().getCassandraMBeanLocator().locateStorageServiceMBean(); } catch (CassandraServerManagementException e) { handleException("Error occurred while retrieving node information list", e); } if (ssMBean == null) { handleException("Storage Server MBean is null"); } Map<String, String> tokenToEndpoint = ssMBean.getTokenToEndpointMap(); List<String> sortedTokens = new ArrayList<String>(tokenToEndpoint.keySet()); Collections.sort(sortedTokens); /* Calculate per-token ownership of the ring */ Map<InetAddress, Float> ownerships = ssMBean.getOwnership(); List<NodeInformation> nodeInfoList = new ArrayList<NodeInformation>(); for (String token : sortedTokens) { String primaryEndpoint = tokenToEndpoint.get(token); String status = ssMBean.getLiveNodes().contains(primaryEndpoint) ? CassandraManagementConstants.NodeStatuses.NODE_STATUS_UP : ssMBean.getUnreachableNodes().contains(primaryEndpoint) ? CassandraManagementConstants.NodeStatuses.NODE_STATUS_DOWN : CassandraManagementConstants.NodeStatuses.NODE_STATUS_UNKNOWN; String state = ssMBean.getJoiningNodes().contains(primaryEndpoint) ? CassandraManagementConstants.NodeStatuses.NODE_STATUS_JOINING : ssMBean.getLeavingNodes().contains(primaryEndpoint) ? CassandraManagementConstants.NodeStatuses.NODE_STATUS_LEAVING : CassandraManagementConstants.NodeStatuses.NODE_STATUS_NORMAL; Map<String, String> loadMap = ssMBean.getLoadMap(); String load = loadMap.containsKey(primaryEndpoint) ? loadMap.get(primaryEndpoint) : CassandraManagementConstants.NodeStatuses.NODE_STATUS_UNKNOWN; Float ownership = ownerships.get(token); String owns = "N/A"; if (ownership != null) { owns = new DecimalFormat("##0.00%").format(ownership); } NodeInformation nodeInfo = new NodeInformation(); nodeInfo.setAddress(primaryEndpoint); nodeInfo.setState(state); nodeInfo.setStatus(status); nodeInfo.setOwn(owns); nodeInfo.setLoad(load); nodeInfo.setToken(token); nodeInfoList.add(nodeInfo); } return nodeInfoList.toArray(new NodeInformation[nodeInfoList.size()]); }