Skip to content
This repository has been archived by the owner on Feb 27, 2023. It is now read-only.

Commit

Permalink
removed irrelevant pooltype, added configs for host autodiscovery
Browse files Browse the repository at this point in the history
  • Loading branch information
zznate committed Nov 13, 2010
1 parent 0c4ed0f commit 1aa5740
Show file tree
Hide file tree
Showing 4 changed files with 49 additions and 43 deletions.
Expand Up @@ -3,6 +3,7 @@
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.concurrent.TimeUnit;

import org.apache.cassandra.thrift.Cassandra;
import org.apache.cassandra.thrift.TokenRange;
Expand All @@ -14,6 +15,7 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import me.prettyprint.cassandra.connection.CassandraHostRetryService.RetryRunner;
import me.prettyprint.cassandra.service.CassandraHost;
import me.prettyprint.cassandra.service.CassandraHostConfigurator;

Expand All @@ -27,7 +29,7 @@ public class NodeAutoDiscoverService extends BackgroundCassandraHostService {
public NodeAutoDiscoverService(HConnectionManager connectionManager,
CassandraHostConfigurator cassandraHostConfigurator) {
super(connectionManager, cassandraHostConfigurator);

sf = executor.scheduleWithFixedDelay(new QueryRing(), this.retryDelayInSeconds,this.retryDelayInSeconds, TimeUnit.SECONDS);
}

void shutdown() {
Expand Down Expand Up @@ -63,35 +65,36 @@ public void run() {
}
}

private Set<CassandraHost> discoverNodes() {
Set<CassandraHost> existingHosts = connectionManager.getHosts();
Set<CassandraHost> foundHosts = new HashSet<CassandraHost>();
TTransport tr = cassandraHost.getUseThriftFramedTransport() ?
new TFramedTransport(new TSocket(cassandraHost.getHost(), cassandraHost.getPort(), 10)) :
new TSocket(cassandraHost.getHost(), cassandraHost.getPort(), 10);

TProtocol proto = new TBinaryProtocol(tr);
Cassandra.Client client = new Cassandra.Client(proto);
try {
tr.open();
List<TokenRange> tokens = client.describe_ring("System");
for (TokenRange tokenRange : tokens) {
List<String> endpoints = tokenRange.getEndpoints();
for (String endpoint : endpoints) {
CassandraHost foundHost = new CassandraHost(endpoint,cassandraHostConfigurator.getPort());
if ( !existingHosts.contains(foundHost) ) {
foundHosts.add(foundHost);
}
}

private Set<CassandraHost> discoverNodes() {
Set<CassandraHost> existingHosts = connectionManager.getHosts();
Set<CassandraHost> foundHosts = new HashSet<CassandraHost>();
TTransport tr = cassandraHost.getUseThriftFramedTransport() ?
new TFramedTransport(new TSocket(cassandraHost.getHost(), cassandraHost.getPort(), 10)) :
new TSocket(cassandraHost.getHost(), cassandraHost.getPort(), 10);

TProtocol proto = new TBinaryProtocol(tr);
Cassandra.Client client = new Cassandra.Client(proto);
try {
tr.open();
List<TokenRange> tokens = client.describe_ring("System");
for (TokenRange tokenRange : tokens) {
List<String> endpoints = tokenRange.getEndpoints();
for (String endpoint : endpoints) {
CassandraHost foundHost = new CassandraHost(endpoint,cassandraHostConfigurator.getPort());
if ( !existingHosts.contains(foundHost) ) {
foundHosts.add(foundHost);
}

}
} catch (Exception e) {
//log.error("Downed Host retry failed attempt to verify CassandraHost", e);
} finally {
tr.close();
}
return foundHosts;
}

}
} catch (Exception e) {
//log.error("Downed Host retry failed attempt to verify CassandraHost", e);
} finally {
tr.close();
}
return foundHosts;
}
}

Expand Up @@ -61,6 +61,8 @@ public AbstractCluster(String clusterName, CassandraHostConfigurator cassandraHo
failoverPolicy = FailoverPolicy.ON_FAIL_TRY_ALL_AVAILABLE;
cassandraClientMonitor = JmxMonitor.getInstance(connectionManager).getCassandraMonitor();
xtrans = new ExceptionsTranslatorImpl();
// if auto discover, then new NodeAutoDiscoveryService

}

public HConnectionManager getConnectionManager() {
Expand Down
Expand Up @@ -18,9 +18,9 @@ public final class CassandraHostConfigurator {
private ClockResolution clockResolution = ClockResolution.MICROSECONDS;
private boolean useThriftFramedTransport = CassandraHost.DEFAULT_USE_FRAMED_THRIFT_TRANSPORT;
private boolean retryDownedHosts = false;
private boolean autoDiscoverHosts = false;
private int retryDownedHostsQueueSize = CassandraHostRetryService.DEF_QUEUE_SIZE;
private int retryDownedHostsDelayInSeconds = CassandraHostRetryService.DEF_RETRY_DELAY;
private PoolType poolType = PoolType.COMMONS;


public CassandraHostConfigurator() {
Expand Down Expand Up @@ -184,20 +184,27 @@ public void setUseThriftFramedTransport(boolean useThriftFramedTransport) {
this.useThriftFramedTransport = useThriftFramedTransport;
}

public PoolType getPoolType() {
return poolType;
}

public void setPoolType(PoolType poolType) {
this.poolType = poolType;
}

public ClockResolution getClockResolution() {
return clockResolution;
}

public void setClockResolution(ClockResolution clockResolution) {
this.clockResolution = clockResolution;
}

/**
* @return the autoDiscoverHosts
*/
public boolean isAutoDiscoverHosts() {
return autoDiscoverHosts;
}

/**
* @param autoDiscoverHosts the autoDiscoverHosts to set
*/
public void setAutoDiscoverHosts(boolean autoDiscoverHosts) {
this.autoDiscoverHosts = autoDiscoverHosts;
}


}
6 changes: 0 additions & 6 deletions src/main/java/me/prettyprint/cassandra/service/PoolType.java

This file was deleted.

0 comments on commit 1aa5740

Please sign in to comment.