Example usage for org.apache.cassandra.gms EndpointState getUpdateTimestamp

List of usage examples for org.apache.cassandra.gms EndpointState getUpdateTimestamp

Introduction

In this page you can find the example usage for org.apache.cassandra.gms EndpointState getUpdateTimestamp.

Prototype

public long getUpdateTimestamp() 

Source Link

Usage

From source file:org.elassandra.discovery.CassandraDiscovery.java

License:Apache License

public void updateNode(InetAddress addr, EndpointState state) {
    if (DatabaseDescriptor.getEndpointSnitch().getDatacenter(addr).equals(localDc)) {
        DiscoveryNodeStatus status = (state.isAlive()) ? DiscoveryNode.DiscoveryNodeStatus.ALIVE
                : DiscoveryNode.DiscoveryNodeStatus.DEAD;
        boolean updatedNode = false;
        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));

            InetAddress rpc_address = com.google.common.net.InetAddresses
                    .forString(state.getApplicationState(ApplicationState.RPC_ADDRESS).value);
            dn = new DiscoveryNode(buildNodeName(addr), hostId.toString(),
                    new InetSocketTransportAddress(rpc_address, publishPort()), attrs, version);
            dn.status(status);/*from www  .ja  va2 s.  c o m*/
            logger.debug(
                    "New node soure=updateNode internal_ip={} rpc_address={}, node_name={} host_id={} status={} timestamp={}",
                    NetworkAddress.format(addr), NetworkAddress.format(rpc_address), dn.getId(), dn.getName(),
                    status, state.getUpdateTimestamp());
            clusterGroup.members.put(dn.getId(), dn);
            if (state.getApplicationState(ApplicationState.X1) != null
                    || state.getApplicationState(ApplicationState.X2) != null) {
                SystemKeyspace.updatePeerInfo(addr, "workload", "elasticsearch");
            }
            updatedNode = true;
        } else {
            // may update DiscoveryNode status.
            if (!dn.getStatus().equals(status)) {
                dn.status(status);
                updatedNode = true;
            }
        }
        if (updatedNode)
            updateRoutingTable("update-node-" + NetworkAddress.format(addr));
    }
}

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.  j  a va  2  s. co m
            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);
}