Class PlacementPluginAssignStrategy
java.lang.Object
org.apache.solr.cluster.placement.impl.PlacementPluginAssignStrategy
- All Implemented Interfaces:
Assign.AssignStrategy
This assign strategy delegates placement computation to "plugin" code.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionList<org.apache.solr.common.cloud.ReplicaPosition> assign(org.apache.solr.client.solrj.cloud.SolrCloudManager solrCloudManager, List<Assign.AssignRequest> assignRequests) Assign new replicas to nodes.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, waitMethods inherited from interface org.apache.solr.cloud.api.collections.Assign.AssignStrategy
assign
-
Constructor Details
-
PlacementPluginAssignStrategy
-
-
Method Details
-
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, InterruptedException Description 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, InterruptedException Description 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
-