Example usage for org.apache.cassandra.service StorageServiceMBean getLoadMap

List of usage examples for org.apache.cassandra.service StorageServiceMBean getLoadMap

Introduction

In this page you can find the example usage for org.apache.cassandra.service StorageServiceMBean getLoadMap.

Prototype

@Deprecated
public Map<String, String> getLoadMap();

Source Link

Document

Human-readable load value.

Usage

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()]);
}