[
https://issues.apache.org/jira/browse/CASSANDRA-4603?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13598671#comment-13598671
]
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: https://issues.apache.org/jira/browse/CASSANDRA-4603
> 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: http://www.atlassian.com/software/jira