[ 
https://issues.apache.org/jira/browse/NIFI-9689?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Matt Burgess updated NIFI-9689:
-------------------------------
    Description: 
When all FlowFiles in a given queue are penalized, the destination processor is 
still scheduled to run. As a result, the Processor is triggered, no data is 
available, and it generally returns. However, this means that the UI shows 
millions of tasks completed over a short period of time, when no work was 
actually done.

Further, it means that we constantly schedule the processor to run as fast as 
it can, which wastes compute resources. Instead, we should detect that the head 
of the queue is penalized (and therefore all FlowFiles in the queue are 
penalized), and treat it the same as we would if the queue were empty, which 
allows the "bored yield duration" to take effect, significantly reducing CPU 
cycles.

  was:
When all FlowFiles in a given queue are penalized, the destination processor is 
still scheduled to run. As a result, the Processor is triggered, no data is 
available, and it generally returns. However, this means that the UI shows 
millions of tasks completed over a short period of time, when no where was 
actually done.

Further, it means that we constantly schedule the processor to run as fast as 
it can, which wastes compute resources. Instead, we should detect that the head 
of the queue is penalized (and therefore all FlowFiles in the queue are 
penalized), and treat it the same as we would if the queue were empty, which 
allows the "bored yield duration" to take effect, significantly reducing CPU 
cycles.


> Do not schedule processors when all FlowFiles are penalized
> -----------------------------------------------------------
>
>                 Key: NIFI-9689
>                 URL: https://issues.apache.org/jira/browse/NIFI-9689
>             Project: Apache NiFi
>          Issue Type: Improvement
>          Components: Core Framework
>            Reporter: Mark Payne
>            Assignee: Mark Payne
>            Priority: Major
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> When all FlowFiles in a given queue are penalized, the destination processor 
> is still scheduled to run. As a result, the Processor is triggered, no data 
> is available, and it generally returns. However, this means that the UI shows 
> millions of tasks completed over a short period of time, when no work was 
> actually done.
> Further, it means that we constantly schedule the processor to run as fast as 
> it can, which wastes compute resources. Instead, we should detect that the 
> head of the queue is penalized (and therefore all FlowFiles in the queue are 
> penalized), and treat it the same as we would if the queue were empty, which 
> allows the "bored yield duration" to take effect, significantly reducing CPU 
> cycles.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to