murblanc commented on a change in pull request #1758:
URL: https://github.com/apache/lucene-solr/pull/1758#discussion_r472343024



##########
File path: 
solr/core/src/java/org/apache/solr/cluster/events/ClusterSingleton.java
##########
@@ -0,0 +1,14 @@
+package org.apache.solr.cluster.events;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+
+/**
+ * Intended for {@link org.apache.solr.core.CoreContainer} plugins that should 
be
+ * enabled only one instance per cluster.
+ * <p>Implementation detail: currently these plugins are instantiated on the
+ * Overseer leader, and closed when the current node loses its leadership.</p>
+ */
+@Retention(RetentionPolicy.RUNTIME)
+public @interface ClusterSingleton {

Review comment:
       If you don't provide this level of service to plugins (single instance 
running) you force them to somehow do it on their own. How would they even 
start to do that? I'm strongly against exposing internal implementation 
"details" such as ZK. Do we let plugins open TCP ports? Have their own ZK? 
Tomorrow we might decide to run plug-in on other containers/VM's that are not 
nodes or replace ZK by a DB. Will plugins have to reimplement another leader 
election or similar? 
   It is much cleaner and simpler to do it once in Solr. 




----------------------------------------------------------------
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.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org
For additional commands, e-mail: issues-h...@lucene.apache.org

Reply via email to