List of usage examples for org.apache.cassandra.config DatabaseDescriptor getEndpointSnitch
public static IEndpointSnitch getEndpointSnitch()
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); } } }