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

ASF GitHub Bot commented on FLINK-4123:
---------------------------------------

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

    https://github.com/apache/flink/pull/2183#discussion_r69440065
  
    --- Diff: 
flink-streaming-connectors/flink-connector-cassandra/src/main/java/org/apache/flink/streaming/connectors/cassandra/CassandraTupleWriteAheadSink.java
 ---
    @@ -132,11 +132,15 @@ protected void sendValues(Iterable<IN> values, long 
timestamp) throws Exception
                }
                try {
                        while (updatesSent != updatesConfirmed.get()) {
    +                           if (exception.get() != null) { // verify that 
no query failed until now
    +                                   LOG.warn("Sending a value failed.", 
exception.get());
    +                                   break;
    +                           }
                                Thread.sleep(100);
                        }
    --- End diff --
    
    Could we try to replace the busy waiting loop with a wait-notify construct? 
That would decrease latency and wouldn't burn unnecessary CPU cycles. We could 
sync on the `updateConfirmed` variable. 


> CassandraWriteAheadSink can hang on cassandra failure
> -----------------------------------------------------
>
>                 Key: FLINK-4123
>                 URL: https://issues.apache.org/jira/browse/FLINK-4123
>             Project: Flink
>          Issue Type: Bug
>          Components: Cassandra Connector
>    Affects Versions: 1.1.0
>            Reporter: Chesnay Schepler
>            Assignee: Chesnay Schepler
>            Priority: Blocker
>             Fix For: 1.1.0
>
>
> The CassandraWriteAheadSink verifies that all writes send to cassandra have 
> been applied by counting how many were sent and how many callbacks were 
> activated. Once all writes were sent the sink enters into a loop that is only 
> exited once both counts are equal.
> Thus, should cassandra crash after all writes were sent, without having 
> acknowledged all writes, the sink will deadlock in the loop.



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

Reply via email to