Class PlacementPluginAssignStrategy
- java.lang.Object
-
- org.apache.solr.cluster.placement.impl.PlacementPluginAssignStrategy
-
- All Implemented Interfaces:
Assign.AssignStrategy
public class PlacementPluginAssignStrategy extends Object implements Assign.AssignStrategy
This assign strategy delegates placement computation to "plugin" code.
-
-
Constructor Summary
Constructors Constructor Description PlacementPluginAssignStrategy(PlacementPlugin plugin)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description List<org.apache.solr.common.cloud.ReplicaPosition>
assign(org.apache.solr.client.solrj.cloud.SolrCloudManager solrCloudManager, List<Assign.AssignRequest> assignRequests)
Assign new replicas to nodes.Map<org.apache.solr.common.cloud.Replica,String>
computeReplicaBalancing(org.apache.solr.client.solrj.cloud.SolrCloudManager solrCloudManager, Set<String> nodes, int maxBalanceSkew)
Balance replicas across nodes.void
verifyDeleteCollection(org.apache.solr.client.solrj.cloud.SolrCloudManager solrCloudManager, org.apache.solr.common.cloud.DocCollection collection)
Verify that deleting a collection doesn't violate the replica assignment constraints.void
verifyDeleteReplicas(org.apache.solr.client.solrj.cloud.SolrCloudManager solrCloudManager, org.apache.solr.common.cloud.DocCollection collection, String shardId, Set<org.apache.solr.common.cloud.Replica> replicas)
Verify that deleting these replicas doesn't violate the replica assignment constraints.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.solr.cloud.api.collections.Assign.AssignStrategy
assign
-
-
-
-
Constructor Detail
-
PlacementPluginAssignStrategy
public PlacementPluginAssignStrategy(PlacementPlugin plugin)
-
-
Method Detail
-
assign
public List<org.apache.solr.common.cloud.ReplicaPosition> assign(org.apache.solr.client.solrj.cloud.SolrCloudManager solrCloudManager, List<Assign.AssignRequest> assignRequests) throws Assign.AssignmentException, IOException, InterruptedException
Description copied from interface:Assign.AssignStrategy
Assign new replicas to nodes. If multipleAssign.AssignRequest
s are provided, then everyReplicaPosition
made for anAssign.AssignRequest
will be applied to theSolrCloudManager
's state when processing subsequentAssign.AssignRequest
s. Therefore, the order in whichAssign.AssignRequest
s are provided can and will affect theReplicaPosition
s returned.- Specified by:
assign
in interfaceAssign.AssignStrategy
- Parameters:
solrCloudManager
- current instance ofSolrCloudManager
.assignRequests
- list of assign requests to process together ().- Returns:
- list of
ReplicaPosition
-s for new replicas. - Throws:
Assign.AssignmentException
- when assignment request cannot produce any valid assignments.IOException
InterruptedException
-
computeReplicaBalancing
public Map<org.apache.solr.common.cloud.Replica,String> computeReplicaBalancing(org.apache.solr.client.solrj.cloud.SolrCloudManager solrCloudManager, Set<String> nodes, int maxBalanceSkew) throws Assign.AssignmentException, IOException, InterruptedException
Description copied from interface:Assign.AssignStrategy
Balance replicas across nodes.- Specified by:
computeReplicaBalancing
in interfaceAssign.AssignStrategy
- Parameters:
solrCloudManager
- current instance ofSolrCloudManager
.nodes
- to compute replica balancing across.maxBalanceSkew
- to ensure strictness of replica balancing.- Returns:
- Map from Replica to the Node where that Replica should be moved.
- Throws:
Assign.AssignmentException
- when balance request cannot produce any valid assignments.IOException
InterruptedException
-
verifyDeleteCollection
public void verifyDeleteCollection(org.apache.solr.client.solrj.cloud.SolrCloudManager solrCloudManager, org.apache.solr.common.cloud.DocCollection collection) throws Assign.AssignmentException, IOException, InterruptedException
Description copied from interface:Assign.AssignStrategy
Verify that deleting a collection doesn't violate the replica assignment constraints.- Specified by:
verifyDeleteCollection
in interfaceAssign.AssignStrategy
- Parameters:
solrCloudManager
- current instance ofSolrCloudManager
.collection
- collection to delete.- Throws:
Assign.AssignmentException
- when deleting the collection would violate replica assignment constraints.IOException
- on general errors.InterruptedException
-
verifyDeleteReplicas
public void verifyDeleteReplicas(org.apache.solr.client.solrj.cloud.SolrCloudManager solrCloudManager, org.apache.solr.common.cloud.DocCollection collection, String shardId, Set<org.apache.solr.common.cloud.Replica> replicas) throws Assign.AssignmentException, IOException, InterruptedException
Description copied from interface:Assign.AssignStrategy
Verify that deleting these replicas doesn't violate the replica assignment constraints.- Specified by:
verifyDeleteReplicas
in interfaceAssign.AssignStrategy
- Parameters:
solrCloudManager
- current instance ofSolrCloudManager
.collection
- collection to delete replicas from.shardId
- shard name.replicas
- replicas to delete.- Throws:
Assign.AssignmentException
- when deleting the replicas would violate replica assignment constraints.IOException
- on general errors.InterruptedException
-
-