You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Jun Rao (JIRA)" <ji...@apache.org> on 2009/09/16 18:25:59 UTC

[jira] Updated: (CASSANDRA-445) commitlog may consider writes flushed, that are not yet

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

Jun Rao updated CASSANDRA-445:
------------------------------

    Attachment: issue445.patchv1

Submit a quick patch. Use the approach in hbase to drain updaters before flushing. If this looks good, we can polish the code a bit more. For example, CFS.apply() no longer needs commitLogContext.

> commitlog may consider writes flushed, that are not yet
> -------------------------------------------------------
>
>                 Key: CASSANDRA-445
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-445
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>            Reporter: Jonathan Ellis
>            Priority: Critical
>             Fix For: 0.5
>
>         Attachments: issue445.patchv1
>
>
> Jun Rao explains:
> Suppose there are 3 updates u1, u2, and u3. They are written to commit log in that order. If u1 and u3 are applied to memtable first and at that point, a flush is triggered. After the flush completes, it will move the commit log restarting position based on the log for u3. However, u2 hasn't been persisted on disk yet. This means that if the node dies now, the recovery logic won't replay u2 from the log.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.