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

Jonathan Ellis updated CASSANDRA-6297:
--------------------------------------

    Attachment: 6297.txt

Thinking it through, the simplest solution is to just remove the blocking 
flush.  This does mean that we have a longer potential window of non-durability 
for the peer information under Periodic CommitLog, but this does not make 
things qualitatively worse -- e.g., if we were down entirely during the node 
addition we would also have to deal with not having the peer information on 
restart.

I see alternatives to removing the blocking flush as falling into two 
categories:
# semantically equivalent solutions with more complex implementations (e.g. 
moving updateTokens into another thread or executor)
# dramatically complex gymnastics that aren't worth the small extra benefit, 
such as adding a special commitlog sync instead of the blocking flush

> Gossiper blocks when updating tokens and turns node down
> --------------------------------------------------------
>
>                 Key: CASSANDRA-6297
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-6297
>             Project: Cassandra
>          Issue Type: Bug
>            Reporter: Sergio Bossa
>         Attachments: 6297.txt
>
>
> The GossipStage call to SystemTable.updateTokens causes a blocking memtable 
> flush that may get stuck in the postFlushExecutor queue while waiting for 
> other memtables to flush; as a consequence, the Gossiper itself "blocks" and 
> the node is turned down.



--
This message was sent by Atlassian JIRA
(v6.1#6144)

Reply via email to