cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Andrés de la Peña (JIRA) <j...@apache.org>
Subject [jira] [Commented] (CASSANDRA-12952) AlterTableStatement propagates base table and affected MV changes inconsistently
Date Wed, 05 Jul 2017 08:36:00 GMT

    [ https://issues.apache.org/jira/browse/CASSANDRA-12952?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16074423#comment-16074423
] 

Andrés de la Peña commented on CASSANDRA-12952:
-----------------------------------------------

Here are the patches for the affected branches and a couple of dtests:

||[3.0|https://github.com/apache/cassandra/compare/cassandra-3.0...adelapena:12952-3.0]||[3.11|https://github.com/apache/cassandra/compare/cassandra-3.11...adelapena:12952-3.11]||[trunk|https://github.com/apache/cassandra/compare/trunk...adelapena:12952-trunk]||[dtest|https://github.com/riptano/cassandra-dtest/compare/master...adelapena:CASSANDRA-12952]

I ran the patches on our internal CI and the failing tests seem unrelated to the patches.

The patches modify {{AlterTableStatement}} to send all the updates on the table and its materialized
views in a single schema mutation. 

The dtest [rename_column_test |https://github.com/adelapena/cassandra-dtest/blob/7f079929cb03701da5ed32879c26ee9e38a1d695/materialized_views_test.py#L777]
verifies the regular working of renaming columns in the base table of a materialized view.

The dtest [rename_column_atomicity_test|https://github.com/adelapena/cassandra-dtest/blob/7f079929cb03701da5ed32879c26ee9e38a1d695/materialized_views_test.py#L804]
uses a byteman script to kill the node right after the first schema update has been received,
losing the further MV updates. After this, without the patch, the node is able to start but
with a divergence between the schemas of the table and its view.

> AlterTableStatement propagates base table and affected MV changes inconsistently
> --------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-12952
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-12952
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Distributed Metadata, Materialized Views
>            Reporter: Aleksey Yeschenko
>            Assignee: Andrés de la Peña
>             Fix For: 3.0.x, 3.11.x, 4.x
>
>
> In {{AlterTableStatement}}, when renaming columns or changing their types, we also keep
track of all affected MVs - ones that also need column renames or type changes. Then in the
end we announce the migration for the table change, and afterwards, separately, one for each
affected MV.
> This creates a window in which view definitions and base table definition are not in
sync with each other. If a node fails in between receiving those pushes, it's likely to have
startup issues.
> The fix is trivial: table change and affected MV change should be pushed as a single
schema mutation.



--
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


Mime
View raw message