[ 
https://issues.apache.org/jira/browse/NIFI-3681?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15964955#comment-15964955
 ] 

Joseph Niemiec commented on NIFI-3681:
--------------------------------------

So just building out a version of the zookeeper leader queue strategy providing 
this core API. I changed from whoIsLeader to isLeader to avoid having to 
understand any type of addressing when it comes to the core are you the leader 
type functions. In my specific need aliveElectors will help the leader 
partition work, and reassign work should someone leave/join. I have no use 
right now honestly for lastElection, but seemed like an important stat to have, 
I plan to have it return the current leaders znode creation timstim. 

public interface LeaderElectionService  {

        public boolean isLeader();
        
        public List<String> aliveElectors();
        
        public Long LastElection();
        
}


> Controller Service for Processor Leader Elections 
> --------------------------------------------------
>
>                 Key: NIFI-3681
>                 URL: https://issues.apache.org/jira/browse/NIFI-3681
>             Project: Apache NiFi
>          Issue Type: Improvement
>            Reporter: Joseph Niemiec
>            Assignee: Joseph Niemiec
>
> Today I find a need for NiFi Cluster to allow a specific set of processors to 
>  perform a 'LeaderElection' of sorts to allow for a single processor to 
> update the process shared cluster state with assignments (both initial and 
> recovery.) The CS would be responsible for joining a Zookeeper group, the 
> logic itself, performing new elections should an leader die, etc... 
> At its core I envision a simple API provided by the CS
> * String - whoIsLeader
> * List[String] - aliveElectors
> * Long- LastElectionEpoch ? - Not sure about this, but would it be good to 
> detect if an election occurred and the leader did not change but the election 
> occured. Maybe a UUID-4?
> While thinking ZK is best as Clustered NiFi already requires it would there 
> be value in implementing a standalone RAFT or PAXOS that runs at the cluster 
> level? 



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to