Pierre Villard created NIP-32:
---------------------------------

             Summary: Per Flow Registry Client sync frequency
                 Key: NIP-32
                 URL: https://issues.apache.org/jira/browse/NIP-32
             Project: NiFi Improvement Proposal
          Issue Type: Improvement
            Reporter: Pierre Villard


Since NiFi 2.4.0 and NIFI-14355 we changed the default for the refresh 
frequency of versioned process groups from 1 minute to 30 minutes.

Since NiFi 2.6.0 and NIFI-14728 we exposed this value as a NiFi property in the 
configuration file.

However we may have cases where multiple flow registry clients are configured 
and where it is a legitimate scenario to wish for different sync frequencies.

This NIP is to improve the way things are working and provide the option to 
have per flow registry client instance configuration for the frequency at which 
versioned processors groups are synced.

The proposal is to add in the AbstractFlowRegistryClient class in nifi-api a 
new property descriptor like:
{code:java}
public static final PropertyDescriptor SYNCHRONIZATION_INTERVAL = new 
PropertyDescriptor.Builder()
    .name("Synchronization Interval")
    .description("How often this registry client checks the external registry 
for updated versions of flows under version control. "
        + "If not set, the global nifi.flowcontroller.registry.sync.interval is 
used.")
    .required(false)
    .addValidator(StandardValidators.TIME_PERIOD_VALIDATOR)
    .defaultValue("30 min")
    .build(); {code}
Then every implementation is free to expose this property or not. All 
implementations in Apache NiFi would expose it.

At FlowController level we would run the thread every one minute and for every 
registry client we would check its configuration for the configured frequency 
(if not set via the property descriptor, we would fall back to the value set at 
NiFi properties level). We would then check when was the last sync and if 
enough time elapsed we would sync the versioned process group. We would 
maintain a map of registry client ID / last sync. This map would remain very 
small as we do not expect more than a few registry clients to be configured.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to