Joseph Niemiec created NIFI-3681:
------------------------------------

             Summary: 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