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.voidverifyDeleteCollection(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.voidverifyDeleteReplicas(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.AssignStrategyAssign new replicas to nodes. If multipleAssign.AssignRequests are provided, then everyReplicaPositionmade for anAssign.AssignRequestwill be applied to theSolrCloudManager's state when processing subsequentAssign.AssignRequests. Therefore, the order in whichAssign.AssignRequests are provided can and will affect theReplicaPositions returned.- Specified by:
assignin 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.IOExceptionInterruptedException
-
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.AssignStrategyBalance replicas across nodes.- Specified by:
computeReplicaBalancingin 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.IOExceptionInterruptedException
-
verifyDeleteCollection
public void verifyDeleteCollection(org.apache.solr.client.solrj.cloud.SolrCloudManager solrCloudManager, org.apache.solr.common.cloud.DocCollection collection) throws Assign.AssignmentException, IOException, InterruptedExceptionDescription copied from interface:Assign.AssignStrategyVerify that deleting a collection doesn't violate the replica assignment constraints.- Specified by:
verifyDeleteCollectionin 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, InterruptedExceptionDescription copied from interface:Assign.AssignStrategyVerify that deleting these replicas doesn't violate the replica assignment constraints.- Specified by:
verifyDeleteReplicasin 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
-
-