| 
 | Brooklyn | |||||||
| FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | METHOD | DETAIL: FIELD | METHOD | |||||||
brooklyn.entity.trait.Startablebrooklyn.entity.nosql.cassandra.CassandraCluster
brooklyn.entity.rebind.Rebindable
brooklyn.entity.Entity
brooklyn.entity.Group
brooklyn.entity.group.Cluster
brooklyn.entity.group.DynamicCluster
brooklyn.entity.trait.Changeable
brooklyn.entity.basic.AbstractGroup
brooklyn.entity.trait.Identifiable
brooklyn.entity.trait.Resizable
@Catalog(name="Apache Cassandra Database Cluster", description="Cassandra is a highly scalable, eventually " +
        "consistent, distributed, structured key-value store which provides a ColumnFamily-based data model " +
        "richer than typical key/value systems", iconUrl="classpath:///cassandra-logo.jpeg")
@ImplementedBy(CassandraClusterImpl.class)
public interface CassandraCluster
extends DynamicCluster
A cluster of CassandraNodes based on DynamicCluster which can be resized by a policy if required.
Note that due to how Cassandra assumes ports are the same across a cluster, it is NOT possible to deploy a cluster to localhost.
| Fields inherited from interface Cluster | |
|---|---|
| INITIAL_SIZE | 
| Fields inherited from interface Changeable | |
|---|---|
| GROUP_SIZE, MEMBER_ADDED, MEMBER_REMOVED | 
| Method Summary | |
|---|---|
| java.util.Set | gatherPotentialRunningSeeds() | 
| java.util.Set | gatherPotentialSeeds() | 
| java.lang.String | getClusterName()The name of the cluster. | 
| void | update() | 
| Methods inherited from interface DynamicCluster | |
|---|---|
| replaceMember, setFactory, setMemberSpec, setRemovalStrategy, setRemovalStrategy, setZoneFailureDetector, setZonePlacementStrategy | 
| Methods inherited from interface AbstractGroup | |
|---|---|
| setMembers, setMembers | 
| Methods inherited from interface Entity | |
|---|---|
| addChild, addChild, addEnricher, addGroup, addPolicy, clearParent, getApplication, getApplicationId, getAttribute, getChildren, getConfig, getConfig, getCreationTime, getDisplayName, getEnrichers, getEntityType, getGroups, getIconUrl, getId, getLocations, getParent, getPolicies, getRebindSupport, invoke, removeChild, removeEnricher, removePolicy, setParent | 
| Methods inherited from interface Identifiable | |
|---|---|
| getId | 
| Methods inherited from interface Rebindable | |
|---|---|
| getRebindSupport | 
| Field Detail | 
|---|
@SetFromFlag("clusterName")
public BasicAttributeSensorAndConfigKey CLUSTER_NAME
        
@SuppressWarnings("serial")
public AttributeSensor CURRENT_SEEDS
        
@SuppressWarnings("serial")
public AttributeSensor DATACENTERS
        
@SuppressWarnings("serial")
public AttributeSensor DATACENTER_USAGE
        
public int DEFAULT_SEED_QUORUM
Version 1.2.2 is buggy and requires a big delay for 2 nodes both seeds to reconcile, with 1.2.9 this seems fine, with just a few seconds' delay after starting.
public Duration DELAY_AFTER_FIRST
Not needed with 1.2.9 (and does not help with the bug in 1.2.2)
@SetFromFlag("delayBeforeAdvertisingCluster")
public ConfigKey DELAY_BEFORE_ADVERTISING_CLUSTER
        Useful to ensure nodes have synchronized.
On 1.2.2 this could be as much as 120s when using 2 seed nodes, or just a few seconds with 1 seed node. On 1.2.9 it seems a few seconds is sufficient even with 2 seed nodes
@SetFromFlag("snitchName")
public ConfigKey ENDPOINT_SNITCH_NAME
        
public AttributeSensor FIRST_NODE_STARTED_TIME_UTC
public AttributeSensor HAS_PUBLISHED_SEEDS
public AttributeSensor HOSTNAME
public AttributeSensor PROCESS_CPU_TIME_FRACTION_IN_WINDOW_PER_NODE
public AttributeSensor PROCESS_CPU_TIME_FRACTION_LAST_PER_NODE
public AttributeSensor READS_PER_SECOND_IN_WINDOW_PER_NODE
public AttributeSensor READS_PER_SECOND_LAST_PER_NODE
public AttributeSensor READ_ACTIVE
public AttributeSensor READ_PENDING
public AttributeSensor SCHEMA_VERSION_COUNT
@SetFromFlag("seedSupplier")
@SuppressWarnings("serial")
public ConfigKey SEED_SUPPLIER
        
public AttributeSensor THRIFT_PORT
public AttributeSensor THRIFT_PORT_LATENCY_IN_WINDOW_PER_NODE
public AttributeSensor THRIFT_PORT_LATENCY_PER_NODE
public MethodEffector UPDATE
public boolean WAIT_FOR_FIRST
not sure whether this is needed or not. Need to test in env where not all nodes are seed nodes, what happens if non-seed nodes start before the seed nodes?
public AttributeSensor WRITES_PER_SECOND_IN_WINDOW_PER_NODE
public AttributeSensor WRITES_PER_SECOND_LAST_PER_NODE
public AttributeSensor WRITE_ACTIVE
public AttributeSensor WRITE_PENDING
| Method Detail | 
|---|
public java.util.Set gatherPotentialRunningSeeds()
public java.util.Set gatherPotentialSeeds()
public java.lang.String getClusterName()
@Effector(description="Updates the cluster members") public void update()
Brooklyn Multi-Cloud Application Management Platform 
 brooklyncentral.github.com. Apache License. © 2012.