Package org.apache.solr.common.cloud
Class DocCollection
- java.lang.Object
-
- org.apache.solr.common.cloud.ZkNodeProps
-
- org.apache.solr.common.cloud.DocCollection
-
public class DocCollection extends ZkNodeProps implements Iterable<Slice>
Models a Collection in zookeeper (but that Java name is obviously taken, hence "DocCollection")
-
-
Field Summary
Fields Modifier and Type Field Description static StringDOC_ROUTERstatic StringPER_REPLICA_STATEstatic StringSHARDS-
Fields inherited from class org.apache.solr.common.cloud.ZkNodeProps
propMap
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description DocCollectioncopyWith(PerReplicaStates newPerReplicaStates)Update our state with a state of aReplicaUsed to create a new Collection State when only a replica is updatedDocCollectioncopyWithSlices(Map<String,Slice> slices)Use this to make an exact copy of DocCollection with a new set of Slices and every other property as isbooleanequals(Object that)voidforEachReplica(BiConsumer<String,Replica> consumer)Collection<Slice>getActiveSlices()Return the list of active slices for this collection.Slice[]getActiveSlicesArr()Return array of active slices for this collection (performance optimization).Map<String,Slice>getActiveSlicesMap()Get the map of active slices (sliceName->Slice) for this collection.intgetChildNodesVersion()StringgetConfigName()Return non-null config nameintgetExpectedReplicaCount(Replica.Type type, int def)ReplicagetLeader(String sliceName)List<Replica>getLeaderReplicas(String nodeName)Get the list of all leaders hosted on the given node ornullif none.StringgetName()Return collection name.IntegergetNumNrtReplicas()IntegergetNumPullReplicas()IntegergetNumTlogReplicas()PerReplicaStatesgetPerReplicaStates()ReplicagetReplica(String coreNodeName)ReplicagetReplica(BiPredicate<String,Replica> predicate)List<Replica>getReplicas()List<Replica>getReplicas(String nodeName)Get the list of replicas hosted on the given node ornullif none.List<Replica>getReplicas(EnumSet<Replica.Type> s)IntegergetReplicationFactor()DocRoutergetRouter()StringgetShardId(String nodeName, String coreName)Get the shardId of a core on a specific nodeSlicegetSlice(String sliceName)Collection<Slice>getSlices()Gets the list of all slices for this collection.Map<String,Slice>getSlicesMap()Get the map of all slices (sliceName->Slice) for this collection.StringgetZNode()intgetZNodeVersion()inthashCode()static booleanisFullyActive(Set<String> liveNodes, DocCollection collectionState, int expectedShards, int expectedReplicas)Check that all replicas in a collection are livebooleanisModified(int dataVersion, int childVersion)booleanisPerReplicaState()booleanisReadOnly()Iterator<Slice>iterator()StringtoString()static ObjectverifyProp(Map<String,Object> props, String propName)static ObjectverifyProp(Map<String,Object> props, String propName, Object def)voidwrite(org.noggit.JSONWriter jsonWriter)-
Methods inherited from class org.apache.solr.common.cloud.ZkNodeProps
containsKey, fromKeyVals, get, getBool, getInt, getProperties, getStr, getStr, keySet, load, plus, plus, shallowCopy
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface java.lang.Iterable
forEach, spliterator
-
-
-
-
Field Detail
-
DOC_ROUTER
public static final String DOC_ROUTER
- See Also:
- Constant Field Values
-
SHARDS
public static final String SHARDS
- See Also:
- Constant Field Values
-
PER_REPLICA_STATE
public static final String PER_REPLICA_STATE
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
DocCollection
public DocCollection(String name, Map<String,Slice> slices, Map<String,Object> props, DocRouter router)
-
DocCollection
public DocCollection(String name, Map<String,Slice> slices, Map<String,Object> props, DocRouter router, int zkVersion)
- Parameters:
name- The name of the collectionslices- The logical shards of the collection. This is used directly and a copy is not made.props- The properties of the slice. This is used directly and a copy is not made.zkVersion- The version of the Collection node in Zookeeper (used for conditional updates).
-
-
Method Detail
-
copyWith
public DocCollection copyWith(PerReplicaStates newPerReplicaStates)
Update our state with a state of aReplicaUsed to create a new Collection State when only a replica is updated
-
copyWithSlices
public DocCollection copyWithSlices(Map<String,Slice> slices)
Use this to make an exact copy of DocCollection with a new set of Slices and every other property as is- Parameters:
slices- the new set of Slices- Returns:
- the resulting DocCollection
-
getName
public String getName()
Return collection name.
-
getConfigName
public String getConfigName()
Return non-null config name
-
forEachReplica
public void forEachReplica(BiConsumer<String,Replica> consumer)
- Parameters:
consumer- consume shardName vs. replica
-
getSlices
public Collection<Slice> getSlices()
Gets the list of all slices for this collection.
-
getActiveSlices
public Collection<Slice> getActiveSlices()
Return the list of active slices for this collection.
-
getActiveSlicesArr
public Slice[] getActiveSlicesArr()
Return array of active slices for this collection (performance optimization).
-
getSlicesMap
public Map<String,Slice> getSlicesMap()
Get the map of all slices (sliceName->Slice) for this collection.
-
getActiveSlicesMap
public Map<String,Slice> getActiveSlicesMap()
Get the map of active slices (sliceName->Slice) for this collection.
-
getReplicas
public List<Replica> getReplicas(String nodeName)
Get the list of replicas hosted on the given node ornullif none.
-
getLeaderReplicas
public List<Replica> getLeaderReplicas(String nodeName)
Get the list of all leaders hosted on the given node ornullif none.
-
getZNodeVersion
public int getZNodeVersion()
-
getChildNodesVersion
public int getChildNodesVersion()
-
isModified
public boolean isModified(int dataVersion, int childVersion)
-
getReplicationFactor
public Integer getReplicationFactor()
- Returns:
- replication factor for this collection or null if no replication factor exists.
-
getZNode
public String getZNode()
-
getRouter
public DocRouter getRouter()
-
isReadOnly
public boolean isReadOnly()
-
toString
public String toString()
- Overrides:
toStringin classZkNodeProps
-
write
public void write(org.noggit.JSONWriter jsonWriter)
- Specified by:
writein interfaceorg.noggit.JSONWriter.Writable- Overrides:
writein classZkNodeProps
-
isFullyActive
public static boolean isFullyActive(Set<String> liveNodes, DocCollection collectionState, int expectedShards, int expectedReplicas)
Check that all replicas in a collection are live- See Also:
CollectionStatePredicate
-
getReplica
public Replica getReplica(BiPredicate<String,Replica> predicate)
- Parameters:
predicate- test against shardName vs. replica- Returns:
- the first replica that matches the predicate
-
getReplicas
public List<Replica> getReplicas(EnumSet<Replica.Type> s)
-
getShardId
public String getShardId(String nodeName, String coreName)
Get the shardId of a core on a specific node
-
equals
public boolean equals(Object that)
- Overrides:
equalsin classZkNodeProps
-
hashCode
public int hashCode()
- Overrides:
hashCodein classZkNodeProps
-
getNumNrtReplicas
public Integer getNumNrtReplicas()
- Returns:
- the number of replicas of type
Replica.Type.NRTthis collection was created with
-
getNumTlogReplicas
public Integer getNumTlogReplicas()
- Returns:
- the number of replicas of type
Replica.Type.TLOGthis collection was created with
-
getNumPullReplicas
public Integer getNumPullReplicas()
- Returns:
- the number of replicas of type
Replica.Type.PULLthis collection was created with
-
isPerReplicaState
public boolean isPerReplicaState()
-
getPerReplicaStates
public PerReplicaStates getPerReplicaStates()
-
getExpectedReplicaCount
public int getExpectedReplicaCount(Replica.Type type, int def)
-
-