janhoy commented on code in PR #1089:
URL: https://github.com/apache/solr/pull/1089#discussion_r1001623566


##########
solr/core/src/java/org/apache/solr/cloud/api/collections/Assign.java:
##########
@@ -562,8 +566,36 @@ public static AssignStrategy 
createAssignStrategy(CoreContainer coreContainer) {
         coreContainer.getPlacementPluginFactory().createPluginInstance();
     if (placementPlugin == null) {
       // Otherwise use the default
-      // TODO: Replace this with a better options, such as the 
AffinityPlacementFactory
-      placementPlugin = (new SimplePlacementFactory()).createPluginInstance();
+      String defaultPluginId = 
System.getProperty(DEFAULT_PLACEMENT_PLUGIN_SYSPROP);
+      if (defaultPluginId != null) {
+        switch (defaultPluginId.toLowerCase(Locale.ROOT)) {
+          case "simple":
+            placementPlugin = (new 
SimplePlacementFactory()).createPluginInstance();
+            break;
+          case "affinity":
+            placementPlugin = (new 
AffinityPlacementFactory()).createPluginInstance();
+            break;
+          case "minimizecores":
+            placementPlugin = (new 
MinimizeCoresPlacementFactory()).createPluginInstance();
+            break;
+          case "random":
+            placementPlugin = (new 
RandomPlacementFactory()).createPluginInstance();
+            break;
+          default:
+            throw new SolrException(
+                SolrException.ErrorCode.SERVER_ERROR,
+                "Invalid value for system property '"
+                    + DEFAULT_PLACEMENT_PLUGIN_SYSPROP
+                    + "'. Supported values are 'simple', 'random', 'affinity' 
and 'minimizecores'");
+        }
+        log.info(
+            "Default replica placement plugin set in {} to {}",
+            DEFAULT_PLACEMENT_PLUGIN_SYSPROP,
+            defaultPluginId);
+      } else {
+        // TODO: Replace this with a better options, such as the 
AffinityPlacementFactory

Review Comment:
   Well, yes. I left it cause we may want to switch the ootb default to 
affinity in 9.x. We could make a JIRA about affinity as default, and link to 
that jira in the comment instead?



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to