mirror of https://github.com/apache/nifi.git
6d6adfeaeb
Removed Provenance Repository from the stateless RepositoryContextFactory and added it to the DataflowTriggerContext. This was necessary because the previous design overlooked the possibility of many threads concurrently running the same dataflow. They all shared the same StatelessProvenanceRepository, but the code was designed as if only a single thread would be using the repository. As a result, the events that were registered with the stateless prov repo were being copied many times into NiFi's underlying provenance repository. This refactoring also led to the discovery of some old Java 8 syntax that could be cleaned up, and it led to the discovery of some methods that were no longer being used and could be cleaned up. Finally, in testing, I found that when a Stateless Group was scheduled, it scheduled the triggering of the stateless group before marking the state as RUNNING; as a result, the second thread could run, determine that the state is STARTING instead of RUNNING, and return without triggering the stateless group. This was addressed by ensuring that we set the state to RUNNING before triggering the stateless group to be triggered. Signed-off-by: David Handermann <exceptionfactory@apache.org> |
||
---|---|---|
.. | ||
nifi-stateless-api | ||
nifi-stateless-assembly | ||
nifi-stateless-bootstrap | ||
nifi-stateless-bundle | ||
nifi-stateless-resources | ||
pom.xml |