You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Jonathan Ellis (JIRA)" <ji...@apache.org> on 2013/05/24 16:48:20 UTC

[jira] [Commented] (CASSANDRA-5241) Fix forceBlockingFlush

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

Jonathan Ellis commented on CASSANDRA-5241:
-------------------------------------------

To clarify the historical record: we reverted CASSANDRA-5151, which was causing the problem.  This patch has been released since 1.2.2 w/ no problems.
                
> Fix forceBlockingFlush
> ----------------------
>
>                 Key: CASSANDRA-5241
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-5241
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Sylvain Lebresne
>            Assignee: Marcus Eriksson
>             Fix For: 1.2.2
>
>         Attachments: 0001-CASSANDRA-5241-wait-for-flushing-to-complete-before-.patch
>
>
> ForceBlockingFlush doesn't guarantee that after the call, every that the thread has written prior to the call will be fully flushed. At least not in the case of concurrent flushes, because if 2 threads flush roughly at the same time, one will have it's forceBlockingFlush call return immediately because the memtable will be clean (even though some of the thread writes may have not be fully flushed yet).
> I think this is very fragile and make it easy to have hard to find races and so we should fix it. Typically a forceFlush that see a clean memtable could submit a dummy task in the postFlushExecutor and wait for that.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira