cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Robert Stupp (JIRA)" <>
Subject [jira] [Updated] (CASSANDRA-14109) Prevent continuous schema exchange between 3.0 and 3.11 nodes
Date Wed, 13 Dec 2017 13:21:00 GMT


Robert Stupp updated CASSANDRA-14109:
    Resolution: Fixed
        Status: Resolved  (was: Ready to Commit)

Thanks a lot for the review!

Committed the "upgrade fix" as [e646e5032b68622f7ec1dd0c53137be08baabed9|]
to [cassandra-3.11|] and the code improvements
from that as [7a40abb6a5108688fb1b10c375bb751cbb782ea4|]
to [trunk|].
Dtest committed as e67ef2b80a45ae02cc15f4e1a6c57cc68c09b0f8.

> Prevent continuous schema exchange between 3.0 and 3.11 nodes
> -------------------------------------------------------------
>                 Key: CASSANDRA-14109
>                 URL:
>             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|]
> ||OSS trunk|[branch|]
> ||OSS dtest|[branch|]
> 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

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message