You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Paul Ayers (Jira)" <ji...@apache.org> on 2022/03/30 17:23:00 UTC

[jira] [Updated] (CASSANDRA-17503) Request to port the DSE rebuild options to Cassandra

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

Paul Ayers updated CASSANDRA-17503:
-----------------------------------
    Description: 
Testing rebuild in C* 4.0.1, I ran into a scenario where 'nodetool rebuild' was ran without any options in a new DC and the system.available_ranges_v2 table was populated such that every subsequent run of 'nodetool rebuild <sourceDC>' streamed no data.

The problem was that the first run looked at only the new DC so no data was streamed, then the next run that provided the correct source DC still resulted in no streamed data.

Once the system.available_ranges_v2 table was truncated, rebuild worked as expected.

The request here is to include the same code that allows the following options to be used in DSE so one could easily resolve this by using '-m reset' in a similar scenario:

-m, --mode mode
 * normal - conventional behavior, streams only ranges that are not already locally available
 * refetch - resets locally available ranges, streams all ranges but leaves current data untouched
 * reset - resets the locally available ranges, removes all locally present data (like a TRUNCATE), streams all ranges
 * reset-no-snapshot - (like reset) resets the locally available ranges, removes all locally present data (like a TRUNCATE), streams all ranges but prevents a snapshot even if auto_snapshot is enabled

Protecting against updating the available_ranges table if a local DC was chosen might also be a good idea.

  was:
Testing rebuild in C* 4.0.1, I ran into a scenario where 'nodetool rebuild' was ran without any options in a new DC and the system.available_ranges_v2 table was populated such that every subsequent run of 'nodetool rebuild <sourceDC>' streamed no data.

The problem was that the first run looked at only the new DC so no data was streamed, then the next run that provided the correct source DC still resulted in no streamed data.

Once the system.available_ranges_v2 table was truncated, rebuild worked as expected.

The request here is to include the same code that allows the following options to be used in DSE so one could easily resolve this by using '-m reset' in a similar scenario:

-m, --mode mode
 * normal - conventional behavior, streams only ranges that are not already locally available
 * refetch - resets locally available ranges, streams all ranges but leaves current data untouched
 * reset - resets the locally available ranges, removes all locally present data (like a TRUNCATE), streams all ranges
 * reset-no-snapshot - (like reset) resets the locally available ranges, removes all locally present data (like a TRUNCATE), streams all ranges but prevents a snapshot even if auto_snapshot is enabled


> Request to port the DSE rebuild options to Cassandra
> ----------------------------------------------------
>
>                 Key: CASSANDRA-17503
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-17503
>             Project: Cassandra
>          Issue Type: New Feature
>            Reporter: Paul Ayers
>            Priority: Normal
>
> Testing rebuild in C* 4.0.1, I ran into a scenario where 'nodetool rebuild' was ran without any options in a new DC and the system.available_ranges_v2 table was populated such that every subsequent run of 'nodetool rebuild <sourceDC>' streamed no data.
> The problem was that the first run looked at only the new DC so no data was streamed, then the next run that provided the correct source DC still resulted in no streamed data.
> Once the system.available_ranges_v2 table was truncated, rebuild worked as expected.
> The request here is to include the same code that allows the following options to be used in DSE so one could easily resolve this by using '-m reset' in a similar scenario:
> -m, --mode mode
>  * normal - conventional behavior, streams only ranges that are not already locally available
>  * refetch - resets locally available ranges, streams all ranges but leaves current data untouched
>  * reset - resets the locally available ranges, removes all locally present data (like a TRUNCATE), streams all ranges
>  * reset-no-snapshot - (like reset) resets the locally available ranges, removes all locally present data (like a TRUNCATE), streams all ranges but prevents a snapshot even if auto_snapshot is enabled
> Protecting against updating the available_ranges table if a local DC was chosen might also be a good idea.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

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