You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@nifi.apache.org by "ASF subversion and git services (Jira)" <ji...@apache.org> on 2022/01/11 08:49:00 UTC
[jira] [Commented] (NIFI-9390) MergeContent does not work properly in Kafka Connect Stateless flows
[ https://issues.apache.org/jira/browse/NIFI-9390?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17472567#comment-17472567 ]
ASF subversion and git services commented on NIFI-9390:
-------------------------------------------------------
Commit 72e54f4fab9e8b49a85825f0a85f466e7e2564df in nifi's branch refs/heads/main from Mark Payne
[ https://gitbox.apache.org/repos/asf?p=nifi.git;h=72e54f4 ]
NIFI-9390: Updates to MergeContent / MergeRecord so that they play nicely within Stateless
NIFI-9390: Addressed underlying condition in stateless framework that caused Merge-related processors and similar to not properly be triggered as necessary. Added several system tests to verify different configurations.
NIFI-9390: Simplified the logic for how to iterate over the components in a Stateless flow that are ready to be triggered
This closes #5634.
Co-authored-by: Peter Turcsanyi <tu...@apache.org>
Signed-off-by: Peter Turcsanyi <tu...@apache.org>
> MergeContent does not work properly in Kafka Connect Stateless flows
> --------------------------------------------------------------------
>
> Key: NIFI-9390
> URL: https://issues.apache.org/jira/browse/NIFI-9390
> Project: Apache NiFi
> Issue Type: Bug
> Components: NiFi Stateless
> Reporter: Peter Turcsanyi
> Assignee: Peter Turcsanyi
> Priority: Major
> Time Spent: 2h 20m
> Remaining Estimate: 0h
>
> MergeContent does not work in Kafka Connect Stateless flows if the processor is not the first one in the flow.
> NIFI-8469 solved this issue for flows similar to the ones mentioned in that jira:
> GetFile --> SplitText --> ReplaceText --> MergeContent --> PutS3Object
> In this scenario GetFile reads a file and creates a FF from it. SplitText creates multiple FFs. ReplaceText processes all the FFs first and MergeContent will be triggered only after ReplaceText finished with all FFs. So it is able to merge the FFs (but only splits coming from the same input file read by GetFile).
> A Kafka Connect Stateless Sink flow may look like this:
> Input port --> "Process/Transform messages" --> MergeContent --> PutS3Object
> The Kafka Connect framework polls some messages from the Kafka topic that will be enqueued in the stateless flow. Then the first processor gets triggered with one FF. This FF is sent downstream till the end of the flow. MergeContent can only see one FF at a time so it cannot merge multiple files.
> So the issue is that the first processor gets triggered for each flowfile separately (which is fine for GetFile but not for the KC Stateless flow). Only subsequent processors get triggered in "triggerWhileReady" way:
> [https://github.com/apache/nifi/blob/18fc492e4ce97d2bca4f96df1a1f1eb2b3e80899/nifi-stateless/nifi-stateless-bundle/nifi-stateless-engine/src/main/java/org/apache/nifi/stateless/flow/StandardStatelessFlowCurrent.java#L68-L77]
--
This message was sent by Atlassian Jira
(v8.20.1#820001)