cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sylvain Lebresne (JIRA)" <>
Subject [jira] [Commented] (CASSANDRA-4603) use Map internally in schema_ tables where appropriate
Date Mon, 11 Mar 2013 09:43:13 GMT


Sylvain Lebresne commented on CASSANDRA-4603:

The main problem I see here is that "migrating" the schema format without breaking rolling
upgrades is hard. Basically, we can add new properties or new schema tables, bu since the
schema is distributed amongst all nodes, you can't remove/modify a property easily because
old node won't know about the new version.

Meaning that for this issue, for each property that we need to change (including the whole
schema_keyspaces table), I see 2 possibilities:
# either add a separate version (with a new name) but still maintain the old property/table
on new nodes at least until 2.0 (or at least until "all nodes are updated", but relying on
such condition sounds fragile to me).
# Special case the serialization/deserialization of schema messages to take the node version
we receive/send to into account. Meaning that 2.0 node would use proper collections, but when
sending it to 1.1 nodes, it would serialize it as a json (kind of like we did for super columns).

None are fun, but I think 2) makes more sense.

bq. we can/should move key_aliases and column_aliases to Lists instead of json-pseudolists

I must note that CASSANDRA-5125 actually kind of get rid of key_aliases and column_aliases.
The "kind of" is because of the problem above. So CASSANDRA-5125 continues to maintain these
2 properties in the schema, but don't use them anymore. Meaning, we'd be able to remove them
in 2.1 provided we formalize that 2.0 is a mandatory stop before upgrading to 2.1+.

> use Map internally in schema_ tables where appropriate
> ------------------------------------------------------
>                 Key: CASSANDRA-4603
>                 URL:
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: API, Core
>    Affects Versions: 1.2.0
>            Reporter: Jonathan Ellis
>            Assignee: Pavel Yaskevich
>              Labels: cql3
>             Fix For: 2.0
> {replication, compression, compaction}_parameters should be stored as Map type.

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see:

View raw message