org.apache.solr.common.cloud
Class ClusterState

java.lang.Object
  extended by org.apache.solr.common.cloud.ClusterState
All Implemented Interfaces:
JSONWriter.Writable

public class ClusterState
extends Object
implements JSONWriter.Writable

Immutable state of the cloud. Normally you can get the state by using ZkStateReader.getClusterState().


Constructor Summary
ClusterState(Integer zkClusterStateVersion, Set<String> liveNodes, Map<String,Map<String,Slice>> collectionStates)
          Use this constr when ClusterState is meant for consumption.
ClusterState(Set<String> liveNodes, Map<String,Map<String,Slice>> collectionStates)
          Use this constr when ClusterState is meant for publication.
 
Method Summary
 boolean equals(Object obj)
           
 Set<String> getCollections()
          Get collection names.
 Map<String,Map<String,Slice>> getCollectionStates()
           
 ZkNodeProps getLeader(String collection, String shard)
          Get properties of a shard leader for specific collection.
 Set<String> getLiveNodes()
          Get names of the currently live nodes.
 org.apache.solr.common.cloud.ClusterState.RangeInfo getRanges(String collection)
           
 String getShard(int hash, String collection)
          Get shard id for hash.
 String getShardId(String coreNodeName)
          Get shardId for core.
 ZkNodeProps getShardProps(String collection, String coreNodeName)
          Get shard properties or null if shard is not found.
 Slice getSlice(String collection, String slice)
          Get the index Slice for collection.
 Map<String,Slice> getSlices(String collection)
          Get all slices for collection.
 Integer getZkClusterStateVersion()
          The version of clusterstate.json in ZooKeeper.
 int hashCode()
           
 boolean liveNodesContain(String name)
          Check if node is alive.
static ClusterState load(Integer version, byte[] bytes, Set<String> liveNodes)
          Create ClusterState from json string that is typically stored in zookeeper.
static ClusterState load(SolrZkClient zkClient, Set<String> liveNodes)
          Create ClusterState by reading the current state from zookeeper.
 String toString()
           
 void write(JSONWriter jsonWriter)
           
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

ClusterState

public ClusterState(Set<String> liveNodes,
                    Map<String,Map<String,Slice>> collectionStates)
Use this constr when ClusterState is meant for publication. hashCode and equals will only depend on liveNodes and not clusterStateVersion.

Parameters:
liveNodes -
collectionStates -

ClusterState

public ClusterState(Integer zkClusterStateVersion,
                    Set<String> liveNodes,
                    Map<String,Map<String,Slice>> collectionStates)
Use this constr when ClusterState is meant for consumption.

Parameters:
zkClusterStateVersion -
liveNodes -
collectionStates -
Method Detail

getLeader

public ZkNodeProps getLeader(String collection,
                             String shard)
Get properties of a shard leader for specific collection.


getShardProps

public ZkNodeProps getShardProps(String collection,
                                 String coreNodeName)
Get shard properties or null if shard is not found.


getSlice

public Slice getSlice(String collection,
                      String slice)
Get the index Slice for collection.


getSlices

public Map<String,Slice> getSlices(String collection)
Get all slices for collection.


getCollections

public Set<String> getCollections()
Get collection names.


getCollectionStates

public Map<String,Map<String,Slice>> getCollectionStates()
Returns:
Map<collectionName, Map<sliceName,Slice>>

getLiveNodes

public Set<String> getLiveNodes()
Get names of the currently live nodes.


getShardId

public String getShardId(String coreNodeName)
Get shardId for core.

Parameters:
coreNodeName - in the form of nodeName_coreName

liveNodesContain

public boolean liveNodesContain(String name)
Check if node is alive.


getRanges

public org.apache.solr.common.cloud.ClusterState.RangeInfo getRanges(String collection)

getShard

public String getShard(int hash,
                       String collection)
Get shard id for hash. This is used when determining which Slice the document is to be submitted to.


toString

public String toString()
Overrides:
toString in class Object

load

public static ClusterState load(SolrZkClient zkClient,
                                Set<String> liveNodes)
                         throws org.apache.zookeeper.KeeperException,
                                InterruptedException
Create ClusterState by reading the current state from zookeeper.

Throws:
org.apache.zookeeper.KeeperException
InterruptedException

load

public static ClusterState load(Integer version,
                                byte[] bytes,
                                Set<String> liveNodes)
Create ClusterState from json string that is typically stored in zookeeper. Use load(SolrZkClient, Set) instead, unless you want to do something more when getting the data - such as get the stat, set watch, etc.

Parameters:
version - zk version of the clusterstate.json file (bytes)
bytes - clusterstate.json as a byte array
liveNodes - list of live nodes
Returns:
the ClusterState

write

public void write(JSONWriter jsonWriter)
Specified by:
write in interface JSONWriter.Writable

getZkClusterStateVersion

public Integer getZkClusterStateVersion()
The version of clusterstate.json in ZooKeeper.

Returns:
null if ClusterState was created for publication, not consumption

hashCode

public int hashCode()
Overrides:
hashCode in class Object

equals

public boolean equals(Object obj)
Overrides:
equals in class Object


Copyright © 2000-2012 Apache Software Foundation. All Rights Reserved.