You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Benedict (JIRA)" <ji...@apache.org> on 2016/01/15 12:14:40 UTC

[jira] [Comment Edited] (CASSANDRA-9669) If sstable flushes complete out of order, on restart we can fail to replay necessary commit log records

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

Benedict edited comment on CASSANDRA-9669 at 1/15/16 11:14 AM:
---------------------------------------------------------------

I would still consider updating the guide to specify clearly that a drain is necessary on downgrade.  In fact - and I realise this is completely off-topic now - I think we need to ensure that after a drain we leave no intact segment.  Even an empty segment would cause a downgrade to fail if it's the wrong version.


was (Author: benedict):
I would still consider updating the guide to specify clearly that a drain is necessary on downgrade

> If sstable flushes complete out of order, on restart we can fail to replay necessary commit log records
> -------------------------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-9669
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-9669
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Local Write-Read Paths
>            Reporter: Benedict
>            Assignee: Benedict
>            Priority: Critical
>              Labels: correctness
>             Fix For: 2.2.x, 3.0.x, 3.x
>
>
> While {{postFlushExecutor}} ensures it never expires CL entries out-of-order, on restart we simply take the maximum replay position of any sstable on disk, and ignore anything prior. 
> It is quite possible for there to be two flushes triggered for a given table, and for the second to finish first by virtue of containing a much smaller quantity of live data (or perhaps the disk is just under less pressure). If we crash before the first sstable has been written, then on restart the data it would have represented will disappear, since we will not replay the CL records.
> This looks to be a bug present since time immemorial, and also seems pretty serious.



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