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

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

bq. if we detect that current migration is outdated and should be merged we do 
the following actions

Why do we need to do two code paths here?

My preference would be to model this on our Row conflict resolution: for rows, 
we have a single code path where distinct columns are simply merged, and for 
conflicting columns we pick a winner based on user-provided timestamp and, if 
necessary, value contents.  So the result is guaranteed to be the same on all 
replicas no matter what order updates were received in.

Similarly, I'd like to see schemas merge field-at-a-time in 
KSMetadata/CFMetadata, with commutative conflict resolution.  (I suggested byte 
ordering of the field contents; Gary suggested using some clock value created 
by coordinator.)

Seems to me this would make the "isolation" complexity go away.

> Allow Concurrent Schema Migrations
> ----------------------------------
>
>                 Key: CASSANDRA-1391
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-1391
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Core
>            Reporter: Stu Hood
>            Assignee: Pavel Yaskevich
>             Fix For: 1.0
>
>         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.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to