Uploaded image for project: 'Apache NiFi'
  1. Apache NiFi
  2. NIFI-2195

Improve sophistication of how nodes detect and handle differences between local and cluster flows

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Open
    • Major
    • Resolution: Unresolved
    • 1.0.0
    • None
    • Core Framework
    • None

    Description

      Currently, when a node joins a cluster, it uses the flow's "Fingerprint" to determine whether or not its flow matches the cluster flow. If not, it will not join the cluster. There are two main drivers for this. First, we want to ensure that we don't overwrite the flow with a completely different flow (though we want to allow for minor differences between the flow, such as the location of a processor on the graph). Secondly, we want to ensure that there is no data loss.

      We can improve the sophistication of this and allow a node to join the cluster if there are no 'substantive' differences. It is critical that a node not inherit a flow that is missing some Connection, if that Connection has data queued up, as doing so would result in data loss.

      We should be smarter, though, about which things really matter. For instance, if the name of a Processor is different, the node should simply inherit the name of the Processor from the cluster, instead of refusing to join.

      If any changes to the flow are made when joining a cluster, though, we should ensure that we back up the flow before changing it.

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              markap14 Mark Payne
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated: