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

ASF GitHub Bot commented on NIFI-2850:
--------------------------------------

Github user markap14 commented on a diff in the pull request:

    https://github.com/apache/nifi/pull/1115#discussion_r87260657
  
    --- Diff: 
nifi-nar-bundles/nifi-hive-bundle/nifi-hive-processors/src/main/java/org/apache/nifi/processors/hive/PutHiveStreaming.java
 ---
    @@ -377,7 +377,7 @@ public void onTrigger(ProcessContext context, 
ProcessSession session) throws Pro
             final AtomicInteger successfulRecordCount = new AtomicInteger(0);
             List<HiveStreamingRecord> successfulRecords = new LinkedList<>();
             final FlowFile inputFlowFile = flowFile;
    -        final AtomicBoolean incomingFlowFileTransferred = new 
AtomicBoolean(false);
    +        final AtomicBoolean processingFailure = new AtomicBoolean(false);
    --- End diff --
    
    @joewitt so in updating MockProcessSession to support the session 
migration, I found that the MockProcessSession was not properly keeping track 
of the 'recursionSet' that StandardProcessSession was. I fixed that bug, as it 
had to be addressed in order to properly implement the session migration in the 
Mock framework. Once I fixed that bug in Mock ProcessSession, it then exposed 
this unrelated bug in PutHiveStreaming. However, the bug in PutHiveStreaming 
would now cause unit test failures, I addressed that in this PR as well.


> Provide ability for a FlowFile to be migrated from one Process Session to 
> another
> ---------------------------------------------------------------------------------
>
>                 Key: NIFI-2850
>                 URL: https://issues.apache.org/jira/browse/NIFI-2850
>             Project: Apache NiFi
>          Issue Type: Improvement
>          Components: Core Framework
>            Reporter: Mark Payne
>            Assignee: Joseph Witt
>             Fix For: 1.1.0
>
>
> Currently, the MergeContent processor creates a separate ProcessSession for 
> each FlowFile that it pulls. This is done so that we can ensure that we can 
> commit all Process Sessions when a bin is full. Unfortunately, this means 
> that MergeContent is required to call ProcessSession.get() many times, which 
> adds a lot of contention on the FlowFile Queue. If we allow FlowFiles to be 
> migrated from 1 session to another, we can have a session per bin, and then 
> use ProcessSession.get(100) to greatly reduce lock contention. This will 
> likely have benefits in other processors as well.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to