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 String
DOC_ROUTER
static String
PER_REPLICA_STATE
static String
SHARDS
-
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 DocCollection
copyWith(PerReplicaStates newPerReplicaStates)
Update our state with a state of aReplica
Used to create a new Collection State when only a replica is updatedDocCollection
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 isboolean
equals(Object that)
void
forEachReplica(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.int
getChildNodesVersion()
String
getConfigName()
Return non-null config nameint
getExpectedReplicaCount(Replica.Type type, int def)
Replica
getLeader(String sliceName)
List<Replica>
getLeaderReplicas(String nodeName)
Get the list of all leaders hosted on the given node ornull
if none.String
getName()
Return collection name.Integer
getNumNrtReplicas()
Integer
getNumPullReplicas()
Integer
getNumTlogReplicas()
PerReplicaStates
getPerReplicaStates()
Replica
getReplica(String coreNodeName)
Replica
getReplica(BiPredicate<String,Replica> predicate)
List<Replica>
getReplicas()
List<Replica>
getReplicas(String nodeName)
Get the list of replicas hosted on the given node ornull
if none.List<Replica>
getReplicas(EnumSet<Replica.Type> s)
Integer
getReplicationFactor()
DocRouter
getRouter()
String
getShardId(String nodeName, String coreName)
Get the shardId of a core on a specific nodeSlice
getSlice(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.String
getZNode()
int
getZNodeVersion()
int
hashCode()
static boolean
isFullyActive(Set<String> liveNodes, DocCollection collectionState, int expectedShards, int expectedReplicas)
Check that all replicas in a collection are liveboolean
isModified(int dataVersion, int childVersion)
boolean
isPerReplicaState()
boolean
isReadOnly()
Iterator<Slice>
iterator()
String
toString()
static Object
verifyProp(Map<String,Object> props, String propName)
static Object
verifyProp(Map<String,Object> props, String propName, Object def)
void
write(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 aReplica
Used 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 ornull
if none.
-
getLeaderReplicas
public List<Replica> getLeaderReplicas(String nodeName)
Get the list of all leaders hosted on the given node ornull
if 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:
toString
in classZkNodeProps
-
write
public void write(org.noggit.JSONWriter jsonWriter)
- Specified by:
write
in interfaceorg.noggit.JSONWriter.Writable
- Overrides:
write
in 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:
equals
in classZkNodeProps
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classZkNodeProps
-
getNumNrtReplicas
public Integer getNumNrtReplicas()
- Returns:
- the number of replicas of type
Replica.Type.NRT
this collection was created with
-
getNumTlogReplicas
public Integer getNumTlogReplicas()
- Returns:
- the number of replicas of type
Replica.Type.TLOG
this collection was created with
-
getNumPullReplicas
public Integer getNumPullReplicas()
- Returns:
- the number of replicas of type
Replica.Type.PULL
this collection was created with
-
isPerReplicaState
public boolean isPerReplicaState()
-
getPerReplicaStates
public PerReplicaStates getPerReplicaStates()
-
getExpectedReplicaCount
public int getExpectedReplicaCount(Replica.Type type, int def)
-
-