Mark Payne created NIP-22:
-----------------------------
Summary: "Single Node Only" Execution Node
Key: NIP-22
URL: https://issues.apache.org/jira/browse/NIP-22
Project: NiFi Improvement Proposal
Issue Type: New Feature
Reporter: Mark Payne
Assignee: Mark Payne
h3. Motivation
NiFi supports running a Processor on "All Nodes" or "Primary Node Only." This
works well when you have a few processors that don't require a large amount of
overhead. However, some flows have many different processors that have to be
run as Primary Node Only, and it can cause a single node to be heavily
overloaded.
There are times that we want to have a Primary Node because we want multiple
flows running on the same node. But the vast majority of the time we simply
care that the processor runs on 1 node only - but we don't care which node.
To this end, we should introduce the ability to schedule a Processor to run on
a "Single Node Only" but not care which node. If we have 100 Processors
configured for Single Node Only, each node in the cluster should run some
number of those Processors but not all.
h3. NiFi API Changes
Introduce a new ExecutionNode value of `SINGLE_NODE_ONLY`.
Deprecate the `@PrimaryNodeOnly` in favor of a new `@SingleNodeOnly`
Introduce a new `@OnSingleNodeElectionChange` annotation that can be added to
processors that is analogous to the @OnPrimaryNodeChange.
h3. REST API Changes
There should be no significant changes to the REST API, except to allow for the
new Execution Node value.
h3. UI Changes
We will need a new icon similar to the 'P' badge that shows on Processors when
the Processor is run on Primary Node Only. This also appears in the Summary
table. We also need the ability to choose the new value for the "Execution
Node".
h3. Open Questions
Do we truly have a need for Primary Node still? Or should this replace it
entirely?
--
This message was sent by Atlassian Jira
(v8.20.10#820010)