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 (Commented) (JIRA)" <ji...@apache.org> on 2011/11/09 19:45:51 UTC

[jira] [Commented] (CASSANDRA-1391) Allow Concurrent Schema Migrations

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

Jonathan Ellis commented on CASSANDRA-1391:
-------------------------------------------

bq. My preference would be to model this on our Row conflict resolution

I think we can make it even simpler, by moving schema out of avro and into native CFs.

Each KS/CF would be a row.  Attributes would be columns.  When columns change you run the appropriate ALTER code.  If you get an update that's obsolete (applying it does not change the schema b/c it has older timestamp) then it is no-op.

Schema version would become some kind of md5 or sha of the CF contents (all rows + all columns).

The only problem is you need to be a little careful to open the schema CFs before anything else, but that's relatively easy I think.
                
> Allow Concurrent Schema Migrations
> ----------------------------------
>
>                 Key: CASSANDRA-1391
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-1391
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Core
>    Affects Versions: 0.7.0
>            Reporter: Stu Hood
>            Assignee: Pavel Yaskevich
>             Fix For: 1.1
>
>         Attachments: CASSANDRA-1391.patch
>
>
> CASSANDRA-1292 fixed multiple migrations started from the same node to properly queue themselves, but it is still possible for migrations initiated on different nodes to conflict and leave the cluster in a bad state. Since the system_add/drop/rename methods are accessible directly from the client API, they should be completely safe for concurrent use.
> It should be possible to allow for most types of concurrent migrations by converting the UUID schema ID into a VersionVectorClock (as provided by CASSANDRA-580).

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira