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

Pavel Yaskevich commented on CASSANDRA-1391:
--------------------------------------------

It seems like what we really want from migrations is "schema state" before any 
given migration and actual modifications migration makes like "add keyspace 
<ks> with attributes = ...", "update <cf> with attributes = ...." 

As all of the migrations are user initiated we can easily calculate what 
modifications migration makes and propagate only them keeping TimeUUID as ID of 
the migration to identify "apply" order. As it's okay for us to require full 
cluster update before accepting schema modifications it makes merge a trivial 
task where modifications should be applied one-by-one on some "initial state" 
of the schema (that also allows as to remove Avro overhead from migrations). 
Abandoning Avro would make things less fragile because there would be no need 
to modify CFMetaData or any other classes to support new (or deleted) 
attributes.
                
> 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

        

Reply via email to