cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Pavel Yaskevich (Commented) (JIRA)" <>
Subject [jira] [Commented] (CASSANDRA-1391) Allow Concurrent Schema Migrations
Date Fri, 20 Jan 2012 00:02:42 GMT


Pavel Yaskevich commented on CASSANDRA-1391:

bq. validateSchemaAgreement is unnecessary now right?

I think it's still a good idea to validate if all nodes have the same schema.

bq. the old Migration infrastructure feels unnecessarily heavyweight now. Can we move the
validation into the CassandraServer methods, and then just invoke a MigrationHelper method
from a runnable there?

I tried to optimize it as much as possible because I still think that there is a reason to
keep it because it encapsulates all announce, apply and validation logic pretty good. I tried
to move validation and stuff to the CassandraServer but it shows itself as hardly readable
and heavy-weight. 

bq. should we snapshot the old avro schema before nuking it?

MigrationHelper.dropColumnFamily that I call to remove Migrations and Schema CFs makes snapshot
of the data.

bq. SystemTable.dropOldSchemaTables is a no-op. I think we can take this out entirely since
loadSchema/fromAvro takes care of it?

Ugh, I forgot to remove it from the final version of the patch, sorry...

bq. Can you add a comment describing the layout of the new schema CFs to defstable or systemtable?

Sure, I will do that in SystemTable.

bq. I'd prefer to leave the low level slicing / deserialize in SystemTable class instead of
scattered between Schema and DefsTable

Sure, I will move serialize and serialized methods from Schema to SystemTable, plus DefsTable.readSchemaRow
and getSchema also go there.
> 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
>            Priority: Critical
>             Fix For: 1.1
>         Attachments: 1391-rebased.txt, 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