Etienne Chauchot created FLINK-27866:
----------------------------------------

             Summary: CassandraOutputFormat and CassandraSink will timeout 
twice if the number of maximum requests is reached
                 Key: FLINK-27866
                 URL: https://issues.apache.org/jira/browse/FLINK-27866
             Project: Flink
          Issue Type: Improvement
          Components: Connectors / Cassandra
            Reporter: Etienne Chauchot


Both Sink and Outputformat have the same logic: they support 
_maxConcurrentRequests_ with a semaphore by counting the number of in-flight 
write requests and acquire/release semaphore permits with each new request 
begin/end. At close time, during the flush they wait for all the requests to be 
processed by acquiring all the permits set in the semaphore.

If a given write fails because there are still _maxConcurrentRequests_ in 
flight after the given wait period, a _TimeoutException_ will be thrown (while 
trying to acquire a permit from the semaphore) . Then Flink will catch this 
exception and close the sink/format. During the flush it will try to acquire 
permits from the semaphore once again and this will lead to another wait period 
and another {_}TimeoutException{_}. 

 

Ideally, we should wait only once and get only one TimeoutException.

 



--
This message was sent by Atlassian Jira
(v8.20.7#820007)

Reply via email to