You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Robert Stupp (JIRA)" <ji...@apache.org> on 2017/12/12 17:30:01 UTC

[jira] [Updated] (CASSANDRA-14109) Prevent continuous schema exchange between 3.0 and 3.11 nodes

     [ https://issues.apache.org/jira/browse/CASSANDRA-14109?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Robert Stupp updated CASSANDRA-14109:
-------------------------------------
    Status: Patch Available  (was: Open)

> Prevent continuous schema exchange between 3.0 and 3.11 nodes
> -------------------------------------------------------------
>
>                 Key: CASSANDRA-14109
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-14109
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Coordination, Distributed Metadata
>            Reporter: Robert Stupp
>            Assignee: Robert Stupp
>            Priority: Blocker
>             Fix For: 3.11.2
>
>
> Continuous schema migrations can happen during an upgrade from 3.0.x to 3.x even with versions having the patches for CASSANDRA-13441 and CASSANDRA-13559.
> The root cause is the {{cdc}} column, which is included in schema version calculation in {{RowIterators.digest()}} via {{SchemaKeyspace.calculateSchemaDigest()}}.
> It is possible to make the schema-version calculation between 3.0 and 3.11 compatible. The idea here is: 3.11 accepts both 3.0 compatible and 3.11 "native" schema versions. As long as there is one 3.0 node in the cluster, 3.11 announces a 3.0 compatible schema version (without the {{cdc}} column). When there are no (more) 3.0 nodes in the cluster, announce the "real" 3.11 schema version (including the {{cdc}} column). "Announce" means announcing via Gossip and storing in {{system.local}}.
> The change itself is against 3.11 only. A couple of log messages have been improved and some code regarding schema version checks has been moved into the {{Schema}} class. Those "side changes" are carried to trunk. Because of that, the 3.11 and trunk branches are different. The "real" change is in the 3.11 branch.
> {{NEWS.txt}} for 3.11(only) contains upgrade notes.
> ||OSS 3.11|[branch|https://github.com/apache/cassandra/compare/cassandra-3.11...snazy:schema-migration-upgrade-bug-3.11?expand=1]
> ||OSS trunk|[branch|https://github.com/apache/cassandra/compare/trunk...snazy:schema-migration-upgrade-bug-trunk?expand=1]
> ||OSS dtest|[branch|https://github.com/riptano/cassandra-dtest/compare/master...snazy:schema-migration-upgrade-bug?expand=1]
> We've verified the functionality of the patch by usual CI tests and extensive tests using the new upgrade dtest.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org