cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sylvain Lebresne (Commented) (JIRA)" <>
Subject [jira] [Commented] (CASSANDRA-1391) Allow Concurrent Schema Migrations
Date Fri, 06 Jan 2012 11:31:39 GMT


Sylvain Lebresne commented on CASSANDRA-1391:

Besides, I really think that 'get rid of thrift (or avro) internally' is a win in the long
run for doing it using apply/diff if there was no other argument. But, as Jonathan, I see
no reason not to apply/diff if we can instead of rewriting equivalent methods.

Moreover, it seems to me that the apply/diff approach would mean that a schema change would
basically be 'send new schema as batch mutation to all nodes' and the 'does node1 and node2
agree on schema' is just 'read node1 and node2 schema row, diff the result and send a batch
mutation with whatever each node needs'. There is no need for 'schema versions' or anything,
column timestamp just deal with that problem. You only ever keep one row for the schema and
that's it. So it seems to me that it's basically making concurrency a non issue (because we
already handle concurrency internally and through the use of column timestamps), while I don't
see how those concurrency issues can be free if you use some thrift serialization.

As Jonathan said, there may be a fundamental problem with the apply/diff approach, but I don't
see any right away (and truth is I'm much more confident in C* existing data and concurrency
model to handle conflicts during schema update than in the current (or any) had-hoc migration
> Allow Concurrent Schema Migrations
> ----------------------------------
>                 Key: CASSANDRA-1391
>                 URL:
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Core
>    Affects Versions: 0.7.0
>            Reporter: Stu Hood
>            Assignee: Pavel Yaskevich
>             Fix For: 1.1
>         Attachments: 0001-new-migration-schema-and-avro-methods-cleanup.patch, 0002-avro-removal.patch,
0003-oldVersion-removed-new-migration-distribution-schema.patch, 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:!default.jspa
For more information on JIRA, see:


View raw message