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

Bryan Bende commented on NIFI-543:
----------------------------------

I'm not really saying either of those things...

There is a feature called "component versioning" that lets you change the 
version of a component in-place:

[https://nifi.apache.org/docs/nifi-docs/html/user-guide.html#changing-component-versions]

Using my previous example, lets say we have ProcessorXYZ v1 which is annotated 
with the new @PrimaryNodeOnly annotation.

When someone creates an instance of this processor in their flow, a new 
StandardProcessorNode will be created and it will be given a instance of 
ProcessorXYZ v1.

Some time later, someone deploys a new NAR to the lib directory that has 
ProcessorXYZ v2 which no longer has the @PrimaryNodeOnly annotation.

They then go into the UI and right-click on the v1 processors and select change 
version to v2.

Behind the scenes the StandardProcessorNode remains in place, and the 
underlying processor is swapped out by calling reload() which eventually will 
call set a new processor into the existing node:
{code:java}
@Override
public synchronized void setProcessor(final LoggableComponent<Processor> 
processor) {
    if (isRunning()) {
        throw new IllegalStateException("Cannot modify Processor configuration 
while the Processor is running");
    }

    final ProcessorDetails processorDetails = new ProcessorDetails(processor);
    processorRef.set(processorDetails);
}{code}
If you don't move executionNodeRestricted into ProcessorDetails and recalculate 
it when the processor is swapped out, then the old value will be stuck in the 
node and will no longer be accurate the actual processor that is being used.

> Provide extensions a way to indicate that they can run only on primary node, 
> if clustered
> -----------------------------------------------------------------------------------------
>
>                 Key: NIFI-543
>                 URL: https://issues.apache.org/jira/browse/NIFI-543
>             Project: Apache NiFi
>          Issue Type: Sub-task
>          Components: Core Framework, Documentation &amp; Website, Extensions
>            Reporter: Mark Payne
>            Assignee: Sivaprasanna Sethuraman
>            Priority: Major
>
> There are Processors that are known to be problematic if run from multiple 
> nodes simultaneously. These processors should be able to use a 
> @PrimaryNodeOnly annotation (or something similar) to indicate that they can 
> be scheduled to run only on primary node if run in a cluster.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to