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 2011/03/24 22:00:05 UTC

[jira] [Updated] (CASSANDRA-2381) orphaned data files may be created during migration race

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

Jonathan Ellis updated CASSANDRA-2381:
--------------------------------------

    Attachment: 2381-0.8.txt

Patch against 0.8:

- moves Table.flusherLock to Memtable.flushLock; acquire during memtable writing
- replaces flushLock use in Table.maybeSwitchMemtables with a synchronized block
- removes beforeApplyModel; snapshotting is moved into applyModel for drops and removed entirely for updates

> orphaned data files may be created during migration race
> --------------------------------------------------------
>
>                 Key: CASSANDRA-2381
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-2381
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 0.7.0
>            Reporter: Jonathan Ellis
>            Assignee: Jonathan Ellis
>            Priority: Minor
>             Fix For: 0.7.5
>
>         Attachments: 2381-0.8.txt
>
>
> We try to prevent creating orphans by locking Table.flusherLock in maybeSwitchMemtable and the Migration process, but since the actual writing is done asynchronously in Memtable.writeSortedContents there is a race window, where we acquire lock in maybeSwitch, we're not dropped so we queue the flush and release the lock, Migration does the drop, then Memtable writes itself out.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira