Michael W Moser created NIFI-14386:
--------------------------------------

             Summary: Remove ListenHTTP Max Data to Receive per Second 
capability
                 Key: NIFI-14386
                 URL: https://issues.apache.org/jira/browse/NIFI-14386
             Project: Apache NiFi
          Issue Type: Improvement
          Components: Extensions
            Reporter: Michael W Moser


ListenHTTP can limit the rate of data that it accepts, which limits the rate 
that data is read from a socket.  It will eventually read all data from the 
socket and commit the file to NiFi repositories.  However, perhaps due to data 
buffering, the sending side can think it has sent the entire file but get a 
SocketTimeoutException because ListenHTTP hasn't finished reading yet.  
Typically, after encountering an exception, the sending side can try to send 
the file again.  This causes duplicate files on the receiving end.  
Additionally, large files may never make it through the connection.  Because of 
this we should remove the Max Data to Receive per Second capability.

There is a viable replacement which should be documented.  Follow ListenHTTP 
with a ControlRate processor where you set the desired data rate limit.  
Configure back pressure on the "success" connection between ListenHTTP and 
ControlRate.  Back pressure should be limited to an acceptable data buffer size 
that is not too large to make the rate limit unnoticeable.

When back pressure is in effect, ListenHTTP will send 503 Service Unavailable 
responses as soon as an HTTP connection is made.  This indicates to the sender 
that the ListenHTTP is overloaded and to try again later.



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

Reply via email to