Example usage for org.apache.cassandra.config DatabaseDescriptor getEndpointSnitch

List of usage examples for org.apache.cassandra.config DatabaseDescriptor getEndpointSnitch

Introduction

In this page you can find the example usage for org.apache.cassandra.config DatabaseDescriptor getEndpointSnitch.

Prototype

public static IEndpointSnitch getEndpointSnitch() 

Source Link

Usage

From source file:org.elasticsearch.cassandra.discovery.CassandraDiscovery.java

License:Apache License

public void updateNode(InetAddress addr, EndpointState state) {

    DiscoveryNodeStatus status = (state.isAlive()) ? DiscoveryNode.DiscoveryNodeStatus.ALIVE
            : DiscoveryNode.DiscoveryNodeStatus.DEAD;
    boolean updatedNode = false;
    if (DatabaseDescriptor.getEndpointSnitch().getDatacenter(addr).equals(localDc)) {
        String hostId = state.getApplicationState(ApplicationState.HOST_ID).value;
        DiscoveryNode dn = clusterGroup.get(hostId);
        if (dn == null) {
            Map<String, String> attrs = Maps.newHashMap();
            attrs.put("data", "true");
            attrs.put("master", "true");
            attrs.put("data_center", localDc);
            attrs.put("rack", DatabaseDescriptor.getEndpointSnitch().getRack(addr));

            dn = new DiscoveryNode(buildNodeName(addr), hostId.toString(),
                    new InetSocketTransportAddress(addr, settings.getAsInt("transport.tcp.port", 9300)), attrs,
                    version);//from w  ww.ja v  a 2 s .c  om
            dn.status(status);
            logger.debug("New node soure=updateNode addr_ip={} node_name={} host_id={} status={} timestamp={}",
                    addr.getHostAddress(), dn.getId(), dn.getName(), status, state.getUpdateTimestamp());
            clusterGroup.members.put(dn.getId(), dn);
            updatedNode = true;
        } else {
            // may update DiscoveryNode status.
            if (!dn.getStatus().equals(status)) {
                dn.status(status);
                updatedNode = true;
            }
        }
    }
    if (updatedNode)
        updateClusterState("update-node-" + addr.getHostAddress(), null);
}

From source file:org.elasticsearch.cassandra.discovery.CassandraDiscovery.java

License:Apache License

public void checkMetaDataVersion() {
    for (Iterator<MetaDataVersionListener> it = this.metaDataVersionListeners.iterator(); it.hasNext();) {
        MetaDataVersionListener listener = it.next();
        boolean versionReached = true;
        for (InetAddress addr : Gossiper.instance.getLiveTokenOwners()) {
            if (DatabaseDescriptor.getEndpointSnitch().getDatacenter(addr).equals(localDc)) {
                EndpointState endPointState = Gossiper.instance.getEndpointStateForEndpoint(addr);
                VersionedValue vv = endPointState.getApplicationState(ELASTIC_META_DATA);
                if (vv != null && vv.value.lastIndexOf('/') > 0) {
                    Long version = Long.valueOf(vv.value.substring(vv.value.lastIndexOf('/') + 1));
                    if (version < listener.version()) {
                        versionReached = false;
                        break;
                    }//from   w  w  w  . j  a  v  a  2s.  com
                }
            }
        }
        if (versionReached) {
            logger.debug("MetaData.version = {} reached", listener.version());
            listener.release();
            metaDataVersionListeners.remove(listener);
        }
    }
}