Dariusz Seweryn created NIFI-14301:
--------------------------------------

             Summary: ConsumeKinesisStream decouple HttpClient maxConcurrency 
from "Max Concurrent Tasks"
                 Key: NIFI-14301
                 URL: https://issues.apache.org/jira/browse/NIFI-14301
             Project: Apache NiFi
          Issue Type: Improvement
            Reporter: Dariusz Seweryn


ConsumeKinesisStream currently uses "Max Concurrent Tasks" value as setting for 
the underlying NettyNioAsyncHttpClient maxConcurrency value.

On the surface this seems OK from the framework perspective but it seems 
wasteful and non-optimal due to the nature of HTTP work which is generally IO 
bound whereas the framework assumes the tasks are Compute bound.

ConsumeKinesisStream onTrigger method does two things:
 * at first creates a new thread for a AWS Scheduler class that does all the 
heavy lifting for Kinesis interaction
 * when Scheduler is already created it yields

Having more Concurrent Tasks yielding does not seem to be a productive usage of 
framework threads.

Proposal: set NettyNioAsyncHttpClient maxConcurrency to 
`Runtime.getRuntime().availableProcessors()`



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to