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

Ariel Weisberg updated CASSANDRA-14897:
---------------------------------------
    Description: 
In CASSANDRA-14841 I stopped it from writing to those tables so it wouldn't 
generate any errors. Aleksey pointed out I could write just the old columns. 

If a user manually adds the new columns to the old version nodes before upgrade 
they will be able to query this information across the cluster. This is a 
better situation then making it completely impossible for people to run repairs 
or perform tracing in mixed version clusters.

This would avoid breaking repair and tracing in mixed version clusters.

The missing columns can be added by following [these 
instructions|https://issues.apache.org/jira/browse/CASSANDRA-14841?focusedCommentId=16684959&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-16684959]
For 3.0.15 and 3.11.1 and older versions:
{noformat}
cqlsh> ALTER TABLE system_distributed.repair_history ADD coordinator_port int;
cqlsh> ALTER TABLE system_distributed.repair_history ADD participants_v2 
set<text>;
{noformat}
For 3.0.16 and 3.11.2 and newer:
{noformat}
cqlsh> INSERT INTO system_schema.columns (keyspace_name , table_name , 
column_name , clustering_order , column_name_bytes , kind , position , type ) 
VALUES ( 'system_distributed', 'repair_history', 'coordinator_port', 'none', 
0x636f6f7264696e61746f725f706f7274, 'regular', -1, 'int');
cqlsh> INSERT INTO system_schema.columns (keyspace_name , table_name , 
column_name , clustering_order , column_name_bytes , kind , position , type ) 
VALUES ( 'system_distributed', 'repair_history', 'participants_v2', 'none', 
0x7061727469636970616e74735f7632, 'regular', -1, 'set<text>');
cqlsh> exit
$ nodetool reloadlocalschema
{noformat}
Remember that the INSERT's and nodetool reloadschema must be done on the same 
node.



  was:
In CASSANDRA-14841 I stopped it from writing to those tables so it wouldn't 
generate any errors. Aleksey pointed out I could write just the old columns. 

If a user manually adds the new columns to the old version nodes before upgrade 
they will be able to query this information across the cluster. This is a 
better situation then making it completely impossible for people to run repairs 
or perform tracing in mixed version clusters.

This would avoid breaking repair and tracing in mixed version clusters.

I also want to properly document how to do this and maybe even provide a script 
people can run to add the columns to old nodes.




> In mixed 3.x/4 version clusters write tracing and repair history information 
> without new columns
> ------------------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-14897
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-14897
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Distributed Metadata
>            Reporter: Ariel Weisberg
>            Assignee: Ariel Weisberg
>            Priority: Major
>              Labels: 4.0-pre-rc-bugs
>             Fix For: 4.0
>
>         Attachments: 14897.diff
>
>
> In CASSANDRA-14841 I stopped it from writing to those tables so it wouldn't 
> generate any errors. Aleksey pointed out I could write just the old columns. 
> If a user manually adds the new columns to the old version nodes before 
> upgrade they will be able to query this information across the cluster. This 
> is a better situation then making it completely impossible for people to run 
> repairs or perform tracing in mixed version clusters.
> This would avoid breaking repair and tracing in mixed version clusters.
> The missing columns can be added by following [these 
> instructions|https://issues.apache.org/jira/browse/CASSANDRA-14841?focusedCommentId=16684959&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-16684959]
> For 3.0.15 and 3.11.1 and older versions:
> {noformat}
> cqlsh> ALTER TABLE system_distributed.repair_history ADD coordinator_port int;
> cqlsh> ALTER TABLE system_distributed.repair_history ADD participants_v2 
> set<text>;
> {noformat}
> For 3.0.16 and 3.11.2 and newer:
> {noformat}
> cqlsh> INSERT INTO system_schema.columns (keyspace_name , table_name , 
> column_name , clustering_order , column_name_bytes , kind , position , type ) 
> VALUES ( 'system_distributed', 'repair_history', 'coordinator_port', 'none', 
> 0x636f6f7264696e61746f725f706f7274, 'regular', -1, 'int');
> cqlsh> INSERT INTO system_schema.columns (keyspace_name , table_name , 
> column_name , clustering_order , column_name_bytes , kind , position , type ) 
> VALUES ( 'system_distributed', 'repair_history', 'participants_v2', 'none', 
> 0x7061727469636970616e74735f7632, 'regular', -1, 'set<text>');
> cqlsh> exit
> $ nodetool reloadlocalschema
> {noformat}
> Remember that the INSERT's and nodetool reloadschema must be done on the same 
> node.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

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

Reply via email to